@astrojs/starlight 0.41.11 → 0.42.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 (402) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +13 -0
  2. package/dist/components/MobileMenuToggle.astro +65 -0
  3. package/{components → dist/components}/PageFrame.astro +32 -8
  4. package/dist/components-internals/Icons.d.ts +415 -0
  5. package/dist/components-internals/Icons.js +140 -0
  6. package/dist/components-internals/SidebarPersistState.d.ts +1 -0
  7. package/dist/components-internals/SidebarPersistState.js +53 -0
  8. package/dist/components-internals/TableOfContents/starlight-toc.d.ts +18 -0
  9. package/dist/components-internals/TableOfContents/starlight-toc.js +88 -0
  10. package/dist/constants.d.ts +4 -0
  11. package/dist/constants.js +4 -0
  12. package/{expressive-code.d.ts → dist/expressive-code.d.ts} +6 -13
  13. package/dist/expressive-code.js +31 -0
  14. package/dist/global.d.ts +62 -0
  15. package/dist/global.js +2 -0
  16. package/dist/index.d.ts +7 -0
  17. package/dist/index.js +109 -0
  18. package/dist/integrations/aside-utils.d.ts +9 -0
  19. package/dist/integrations/aside-utils.js +35 -0
  20. package/dist/integrations/expressive-code/hast.d.ts +1 -0
  21. package/dist/integrations/expressive-code/hast.js +2 -0
  22. package/dist/integrations/expressive-code/index.d.ts +60 -0
  23. package/dist/integrations/expressive-code/index.js +48 -0
  24. package/dist/integrations/expressive-code/preprocessor.d.ts +17 -0
  25. package/dist/integrations/expressive-code/preprocessor.js +76 -0
  26. package/dist/integrations/expressive-code/themes/night-owl-dark.js +4 -0
  27. package/dist/integrations/expressive-code/themes/night-owl-light.js +4 -0
  28. package/dist/integrations/expressive-code/theming.d.ts +16 -0
  29. package/dist/integrations/expressive-code/theming.js +71 -0
  30. package/dist/integrations/expressive-code/translations.d.ts +8 -0
  31. package/dist/integrations/expressive-code/translations.js +26 -0
  32. package/dist/integrations/markdown-icon.d.ts +8 -0
  33. package/dist/integrations/markdown-icon.js +14 -0
  34. package/dist/integrations/markdown-plugins.d.ts +18 -0
  35. package/dist/integrations/markdown-plugins.js +36 -0
  36. package/dist/integrations/markdown-processor.d.ts +29 -0
  37. package/dist/integrations/markdown-processor.js +44 -0
  38. package/dist/integrations/pagefind.d.ts +7 -0
  39. package/dist/integrations/pagefind.js +34 -0
  40. package/dist/integrations/rehype-code-rtl-support.d.ts +21 -0
  41. package/dist/integrations/rehype-code-rtl-support.js +36 -0
  42. package/dist/integrations/rehype-heading-links.d.ts +10 -0
  43. package/dist/integrations/rehype-heading-links.js +57 -0
  44. package/dist/integrations/remark-asides.d.ts +32 -0
  45. package/dist/integrations/remark-asides.js +166 -0
  46. package/dist/integrations/remark-rehype.d.ts +17 -0
  47. package/dist/integrations/remark-rehype.js +51 -0
  48. package/dist/integrations/satteri.d.ts +13 -0
  49. package/dist/integrations/satteri.js +209 -0
  50. package/dist/integrations/shared/absolutePathToLang.d.ts +10 -0
  51. package/dist/integrations/shared/absolutePathToLang.js +13 -0
  52. package/dist/integrations/shared/localeToLang.d.ts +10 -0
  53. package/dist/integrations/shared/localeToLang.js +13 -0
  54. package/dist/integrations/shared/slugToLocale.d.ts +12 -0
  55. package/dist/integrations/shared/slugToLocale.js +15 -0
  56. package/dist/integrations/sitemap.d.ts +12 -0
  57. package/dist/integrations/sitemap.js +19 -0
  58. package/dist/integrations/vite-layer-order.d.ts +15 -0
  59. package/dist/integrations/vite-layer-order.js +56 -0
  60. package/dist/integrations/vite-lazy-barrel-optimization.d.ts +12 -0
  61. package/dist/integrations/vite-lazy-barrel-optimization.js +33 -0
  62. package/dist/integrations/vite-virtual-modules.d.ts +14 -0
  63. package/dist/integrations/vite-virtual-modules.js +108 -0
  64. package/dist/internal.d.ts +3 -0
  65. package/dist/internal.js +3 -0
  66. package/dist/loaders.d.ts +20 -0
  67. package/dist/loaders.js +49 -0
  68. package/dist/locals.d.ts +15 -0
  69. package/dist/locals.js +33 -0
  70. package/dist/package.js +4 -0
  71. package/{props.ts → dist/props.d.ts} +6 -4
  72. package/dist/props.js +1 -0
  73. package/dist/route-data.d.ts +7 -0
  74. package/dist/route-data.js +6 -0
  75. package/dist/schema.d.ts +426 -0
  76. package/dist/schema.js +103 -0
  77. package/dist/schemas/badge.d.ts +86 -0
  78. package/dist/schemas/badge.js +39 -0
  79. package/dist/schemas/components.d.ts +236 -0
  80. package/dist/schemas/components.js +36 -0
  81. package/dist/schemas/expressiveCode.d.ts +7 -0
  82. package/dist/schemas/expressiveCode.js +5 -0
  83. package/dist/schemas/favicon.d.ts +9 -0
  84. package/dist/schemas/favicon.js +32 -0
  85. package/dist/schemas/head.d.ts +33 -0
  86. package/dist/schemas/head.js +41 -0
  87. package/dist/schemas/hero.d.ts +319 -0
  88. package/dist/schemas/hero.js +73 -0
  89. package/dist/schemas/i18n.d.ts +125 -0
  90. package/dist/schemas/i18n.js +76 -0
  91. package/dist/schemas/icon.d.ts +284 -0
  92. package/dist/schemas/icon.js +7 -0
  93. package/dist/schemas/locale.d.ts +20 -0
  94. package/dist/schemas/locale.js +11 -0
  95. package/dist/schemas/logo.d.ts +32 -0
  96. package/dist/schemas/logo.js +14 -0
  97. package/dist/schemas/pagefind.d.ts +166 -0
  98. package/dist/schemas/pagefind.js +31 -0
  99. package/dist/schemas/prevNextLink.d.ts +10 -0
  100. package/dist/schemas/prevNextLink.js +14 -0
  101. package/dist/schemas/sidebar.d.ts +205 -0
  102. package/dist/schemas/sidebar.js +71 -0
  103. package/dist/schemas/site-title.d.ts +7 -0
  104. package/dist/schemas/site-title.js +17 -0
  105. package/dist/schemas/social.d.ts +292 -0
  106. package/dist/schemas/social.js +18 -0
  107. package/dist/schemas/tableOfContents.d.ts +24 -0
  108. package/dist/schemas/tableOfContents.js +16 -0
  109. package/dist/translations/ar.js +36 -0
  110. package/dist/translations/ca.js +46 -0
  111. package/dist/translations/cs.js +46 -0
  112. package/dist/translations/da.js +33 -0
  113. package/dist/translations/de.js +33 -0
  114. package/dist/translations/el.js +33 -0
  115. package/dist/translations/en.js +33 -0
  116. package/dist/translations/es.js +46 -0
  117. package/dist/translations/fa.js +33 -0
  118. package/dist/translations/fi.js +33 -0
  119. package/dist/translations/fr.js +36 -0
  120. package/dist/translations/gl.js +46 -0
  121. package/dist/translations/he.js +33 -0
  122. package/dist/translations/hi.js +36 -0
  123. package/dist/translations/hu.js +46 -0
  124. package/dist/translations/id.js +33 -0
  125. package/dist/translations/index.d.ts +48 -0
  126. package/dist/translations/index.js +75 -0
  127. package/dist/translations/it.js +36 -0
  128. package/dist/translations/ja.js +36 -0
  129. package/dist/translations/ko.js +36 -0
  130. package/dist/translations/lv.js +33 -0
  131. package/dist/translations/nb.js +33 -0
  132. package/dist/translations/nl.js +33 -0
  133. package/dist/translations/pl.js +36 -0
  134. package/dist/translations/pt.js +36 -0
  135. package/dist/translations/ro.js +33 -0
  136. package/dist/translations/ru.js +36 -0
  137. package/dist/translations/sk.js +33 -0
  138. package/dist/translations/sv.js +33 -0
  139. package/dist/translations/th.js +33 -0
  140. package/dist/translations/tr.js +33 -0
  141. package/dist/translations/uk.js +33 -0
  142. package/dist/translations/vi.js +33 -0
  143. package/dist/translations/zh-CN.js +36 -0
  144. package/dist/translations/zh-TW.js +36 -0
  145. package/dist/types.d.ts +4 -0
  146. package/dist/types.js +1 -0
  147. package/{user-components → dist/user-components}/FileTree.astro +1 -1
  148. package/{user-components → dist/user-components}/Steps.astro +1 -1
  149. package/{user-components → dist/user-components}/TabItem.astro +1 -1
  150. package/{user-components → dist/user-components}/Tabs.astro +1 -1
  151. package/dist/user-components/file-tree-icons.d.ts +178 -0
  152. package/dist/user-components/file-tree-icons.js +632 -0
  153. package/dist/user-components/file-tree-processor.d.ts +16 -0
  154. package/dist/user-components/file-tree-processor.js +132 -0
  155. package/dist/user-components/steps-processor.d.ts +10 -0
  156. package/dist/user-components/steps-processor.js +39 -0
  157. package/dist/user-components/tabs-processor.d.ts +23 -0
  158. package/dist/user-components/tabs-processor.js +70 -0
  159. package/dist/utils/base.d.ts +7 -0
  160. package/dist/utils/base.js +15 -0
  161. package/dist/utils/canonical.d.ts +10 -0
  162. package/dist/utils/canonical.js +14 -0
  163. package/dist/utils/collection-fs.d.ts +13 -0
  164. package/dist/utils/collection-fs.js +19 -0
  165. package/{utils/collection.ts → dist/utils/collection.d.ts} +9 -20
  166. package/dist/utils/collection.js +26 -0
  167. package/dist/utils/createPathFormatter.d.ts +9 -0
  168. package/dist/utils/createPathFormatter.js +35 -0
  169. package/dist/utils/createTranslationSystem.d.ts +23 -0
  170. package/dist/utils/createTranslationSystem.js +84 -0
  171. package/dist/utils/error-map.d.ts +23 -0
  172. package/dist/utils/error-map.js +125 -0
  173. package/dist/utils/format-path.d.ts +4 -0
  174. package/dist/utils/format-path.js +9 -0
  175. package/dist/utils/generateToC.d.ts +14 -0
  176. package/dist/utils/generateToC.js +25 -0
  177. package/dist/utils/git.d.ts +12 -0
  178. package/dist/utils/git.js +71 -0
  179. package/dist/utils/gitInlined.d.ts +6 -0
  180. package/dist/utils/gitInlined.js +11 -0
  181. package/dist/utils/head.d.ts +7 -0
  182. package/dist/utils/head.js +233 -0
  183. package/dist/utils/i18n.d.ts +50 -0
  184. package/dist/utils/i18n.js +141 -0
  185. package/dist/utils/localizedUrl.d.ts +8 -0
  186. package/dist/utils/localizedUrl.js +28 -0
  187. package/dist/utils/navigation.d.ts +19 -0
  188. package/dist/utils/navigation.js +353 -0
  189. package/dist/utils/path.d.ts +21 -0
  190. package/dist/utils/path.js +51 -0
  191. package/dist/utils/plugins.d.ts +721 -0
  192. package/dist/utils/plugins.js +174 -0
  193. package/dist/utils/routing/data.d.ts +20 -0
  194. package/dist/utils/routing/data.js +127 -0
  195. package/dist/utils/routing/index.d.ts +21 -0
  196. package/dist/utils/routing/index.js +106 -0
  197. package/dist/utils/routing/middleware.d.ts +11 -0
  198. package/dist/utils/routing/middleware.js +65 -0
  199. package/dist/utils/routing/types.d.ts +93 -0
  200. package/dist/utils/routing/types.js +1 -0
  201. package/dist/utils/slugs.d.ts +45 -0
  202. package/dist/utils/slugs.js +104 -0
  203. package/dist/utils/starlight-page.d.ts +36 -0
  204. package/dist/utils/starlight-page.js +120 -0
  205. package/dist/utils/translations-fs.d.ts +15 -0
  206. package/dist/utils/translations-fs.js +39 -0
  207. package/dist/utils/translations.d.ts +20 -0
  208. package/dist/utils/translations.js +29 -0
  209. package/dist/utils/types.d.ts +5 -0
  210. package/dist/utils/types.js +1 -0
  211. package/dist/utils/url.d.ts +7 -0
  212. package/{utils/url.ts → dist/utils/url.js} +5 -4
  213. package/dist/utils/user-config.d.ts +2055 -0
  214. package/dist/utils/user-config.js +136 -0
  215. package/dist/utils/validateLogoImports.d.ts +5 -0
  216. package/dist/utils/validateLogoImports.js +16 -0
  217. package/dist/utils/zodDeepMerge.d.ts +16 -0
  218. package/dist/utils/zodDeepMerge.js +53 -0
  219. package/package.json +60 -34
  220. package/CHANGELOG.md +0 -3051
  221. package/components/MobileMenuToggle.astro +0 -114
  222. package/components-internals/Icons.ts +0 -248
  223. package/components-internals/SidebarPersistState.ts +0 -71
  224. package/components-internals/TableOfContents/starlight-toc.ts +0 -127
  225. package/constants.ts +0 -4
  226. package/expressive-code.mjs +0 -23
  227. package/global.d.ts +0 -11
  228. package/i18n.d.ts +0 -18
  229. package/index.ts +0 -200
  230. package/integrations/aside-utils.ts +0 -41
  231. package/integrations/expressive-code/hast.d.ts +0 -5
  232. package/integrations/expressive-code/hast.mjs +0 -9
  233. package/integrations/expressive-code/index.ts +0 -125
  234. package/integrations/expressive-code/preprocessor.ts +0 -126
  235. package/integrations/expressive-code/themes/night-owl-dark.jsonc +0 -1796
  236. package/integrations/expressive-code/themes/night-owl-light.jsonc +0 -1695
  237. package/integrations/expressive-code/theming.ts +0 -105
  238. package/integrations/expressive-code/translations.ts +0 -36
  239. package/integrations/markdown-icon.ts +0 -13
  240. package/integrations/markdown-plugins.ts +0 -71
  241. package/integrations/markdown-processor.ts +0 -64
  242. package/integrations/pagefind.ts +0 -60
  243. package/integrations/rehype-code-rtl-support.ts +0 -37
  244. package/integrations/rehype-heading-links.ts +0 -79
  245. package/integrations/remark-asides.ts +0 -219
  246. package/integrations/remark-rehype.ts +0 -87
  247. package/integrations/satteri.ts +0 -265
  248. package/integrations/shared/absolutePathToLang.ts +0 -26
  249. package/integrations/shared/localeToLang.ts +0 -15
  250. package/integrations/shared/slugToLocale.ts +0 -18
  251. package/integrations/sitemap.ts +0 -23
  252. package/integrations/vite-layer-order.ts +0 -69
  253. package/integrations/vite-lazy-barrel-optimization.ts +0 -40
  254. package/integrations/vite-virtual-modules.ts +0 -175
  255. package/internal.ts +0 -6
  256. package/loaders.ts +0 -63
  257. package/locals.d.ts +0 -43
  258. package/locals.ts +0 -43
  259. package/route-data.ts +0 -11
  260. package/schema.ts +0 -167
  261. package/schemas/badge.ts +0 -40
  262. package/schemas/components.ts +0 -265
  263. package/schemas/expressiveCode.ts +0 -12
  264. package/schemas/favicon.ts +0 -40
  265. package/schemas/head.ts +0 -50
  266. package/schemas/hero.ts +0 -69
  267. package/schemas/i18n.ts +0 -244
  268. package/schemas/icon.ts +0 -7
  269. package/schemas/logo.ts +0 -28
  270. package/schemas/pagefind.ts +0 -128
  271. package/schemas/prevNextLink.ts +0 -18
  272. package/schemas/sidebar.ts +0 -163
  273. package/schemas/site-title.ts +0 -20
  274. package/schemas/social.ts +0 -23
  275. package/schemas/tableOfContents.ts +0 -21
  276. package/translations/README.md +0 -14
  277. package/translations/ar.json +0 -33
  278. package/translations/ca.json +0 -43
  279. package/translations/cs.json +0 -43
  280. package/translations/da.json +0 -30
  281. package/translations/de.json +0 -30
  282. package/translations/el.json +0 -30
  283. package/translations/en.json +0 -30
  284. package/translations/es.json +0 -43
  285. package/translations/fa.json +0 -30
  286. package/translations/fi.json +0 -30
  287. package/translations/fr.json +0 -33
  288. package/translations/gl.json +0 -43
  289. package/translations/he.json +0 -30
  290. package/translations/hi.json +0 -33
  291. package/translations/hu.json +0 -43
  292. package/translations/id.json +0 -30
  293. package/translations/index.ts +0 -76
  294. package/translations/it.json +0 -33
  295. package/translations/ja.json +0 -33
  296. package/translations/ko.json +0 -33
  297. package/translations/lv.json +0 -30
  298. package/translations/nb.json +0 -30
  299. package/translations/nl.json +0 -30
  300. package/translations/pl.json +0 -33
  301. package/translations/pt.json +0 -33
  302. package/translations/ro.json +0 -30
  303. package/translations/ru.json +0 -33
  304. package/translations/sk.json +0 -30
  305. package/translations/sv.json +0 -30
  306. package/translations/th.json +0 -30
  307. package/translations/tr.json +0 -30
  308. package/translations/uk.json +0 -30
  309. package/translations/vi.json +0 -30
  310. package/translations/zh-CN.json +0 -33
  311. package/translations/zh-TW.json +0 -33
  312. package/types.ts +0 -7
  313. package/user-components/file-tree-icons.ts +0 -782
  314. package/user-components/rehype-file-tree.ts +0 -251
  315. package/user-components/rehype-steps.ts +0 -85
  316. package/user-components/rehype-tabs.ts +0 -121
  317. package/utils/base.ts +0 -15
  318. package/utils/canonical.ts +0 -19
  319. package/utils/collection-fs.ts +0 -20
  320. package/utils/createPathFormatter.ts +0 -60
  321. package/utils/createTranslationSystem.ts +0 -137
  322. package/utils/error-map.ts +0 -222
  323. package/utils/format-path.ts +0 -7
  324. package/utils/generateToC.ts +0 -33
  325. package/utils/git.ts +0 -121
  326. package/utils/gitInlined.ts +0 -20
  327. package/utils/head.ts +0 -235
  328. package/utils/i18n.ts +0 -221
  329. package/utils/localizedUrl.ts +0 -51
  330. package/utils/navigation.ts +0 -574
  331. package/utils/path.ts +0 -58
  332. package/utils/plugins.ts +0 -498
  333. package/utils/routing/data.ts +0 -154
  334. package/utils/routing/index.ts +0 -139
  335. package/utils/routing/middleware.ts +0 -81
  336. package/utils/routing/types.ts +0 -101
  337. package/utils/slugs.ts +0 -119
  338. package/utils/starlight-page.ts +0 -205
  339. package/utils/translations-fs.ts +0 -54
  340. package/utils/translations.ts +0 -57
  341. package/utils/types.ts +0 -15
  342. package/utils/user-config.ts +0 -348
  343. package/utils/validateLogoImports.ts +0 -21
  344. package/utils/zodDeepMerge.ts +0 -144
  345. package/virtual-internal.d.ts +0 -149
  346. package/virtual.d.ts +0 -27
  347. /package/{components → dist/components}/AnchorHeading.astro +0 -0
  348. /package/{components → dist/components}/Banner.astro +0 -0
  349. /package/{components → dist/components}/ContentNotice.astro +0 -0
  350. /package/{components → dist/components}/ContentPanel.astro +0 -0
  351. /package/{components → dist/components}/DraftContentNotice.astro +0 -0
  352. /package/{components → dist/components}/EditLink.astro +0 -0
  353. /package/{components → dist/components}/FallbackContentNotice.astro +0 -0
  354. /package/{components → dist/components}/Footer.astro +0 -0
  355. /package/{components → dist/components}/Head.astro +0 -0
  356. /package/{components → dist/components}/Header.astro +0 -0
  357. /package/{components → dist/components}/Hero.astro +0 -0
  358. /package/{components → dist/components}/LanguageSelect.astro +0 -0
  359. /package/{components → dist/components}/LastUpdated.astro +0 -0
  360. /package/{components → dist/components}/MarkdownContent.astro +0 -0
  361. /package/{components → dist/components}/MobileMenuFooter.astro +0 -0
  362. /package/{components → dist/components}/MobileTableOfContents.astro +0 -0
  363. /package/{components → dist/components}/Page.astro +0 -0
  364. /package/{components → dist/components}/PageSidebar.astro +0 -0
  365. /package/{components → dist/components}/PageTitle.astro +0 -0
  366. /package/{components → dist/components}/Pagination.astro +0 -0
  367. /package/{components → dist/components}/Search.astro +0 -0
  368. /package/{components → dist/components}/Select.astro +0 -0
  369. /package/{components → dist/components}/Sidebar.astro +0 -0
  370. /package/{components → dist/components}/SidebarPersister.astro +0 -0
  371. /package/{components → dist/components}/SidebarRestorePoint.astro +0 -0
  372. /package/{components → dist/components}/SidebarSublist.astro +0 -0
  373. /package/{components → dist/components}/SiteTitle.astro +0 -0
  374. /package/{components → dist/components}/SkipLink.astro +0 -0
  375. /package/{components → dist/components}/SocialIcons.astro +0 -0
  376. /package/{components → dist/components}/StarlightPage.astro +0 -0
  377. /package/{components → dist/components}/TableOfContents.astro +0 -0
  378. /package/{components → dist/components}/ThemeProvider.astro +0 -0
  379. /package/{components → dist/components}/ThemeSelect.astro +0 -0
  380. /package/{components → dist/components}/TwoColumnContent.astro +0 -0
  381. /package/{components-internals → dist/components-internals}/TableOfContents/TableOfContentsList.astro +0 -0
  382. /package/{components.ts → dist/components.ts} +0 -0
  383. /package/{routes → dist/routes}/common.astro +0 -0
  384. /package/{routes → dist/routes}/ssr/404.astro +0 -0
  385. /package/{routes → dist/routes}/ssr/index.astro +0 -0
  386. /package/{routes → dist/routes}/static/404.astro +0 -0
  387. /package/{routes → dist/routes}/static/index.astro +0 -0
  388. /package/{style → dist/style}/anchor-links.css +0 -0
  389. /package/{style → dist/style}/asides.css +0 -0
  390. /package/{style → dist/style}/layers.css +0 -0
  391. /package/{style → dist/style}/markdown.css +0 -0
  392. /package/{style → dist/style}/print.css +0 -0
  393. /package/{style → dist/style}/props.css +0 -0
  394. /package/{style → dist/style}/reset.css +0 -0
  395. /package/{style → dist/style}/util.css +0 -0
  396. /package/{user-components → dist/user-components}/Aside.astro +0 -0
  397. /package/{user-components → dist/user-components}/Badge.astro +0 -0
  398. /package/{user-components → dist/user-components}/Card.astro +0 -0
  399. /package/{user-components → dist/user-components}/CardGrid.astro +0 -0
  400. /package/{user-components → dist/user-components}/Icon.astro +0 -0
  401. /package/{user-components → dist/user-components}/LinkButton.astro +0 -0
  402. /package/{user-components → dist/user-components}/LinkCard.astro +0 -0
@@ -0,0 +1,721 @@
1
+ import { LinkHTMLAttributes } from "../schemas/sidebar.js";
2
+ import { StarlightUserConfig } from "./user-config.js";
3
+ import { UserI18nSchema } from "./translations.js";
4
+ import { I18nT } from "./createTranslationSystem.js";
5
+ import { createTranslationSystemFromFs } from "./translations-fs.js";
6
+ import { StarlightExpressiveCodeOptions } from "../integrations/expressive-code/index.js";
7
+ import "../expressive-code.js";
8
+ import { z } from "astro/zod";
9
+ import { AstroIntegration, HookParameters as HookParameters$1 } from "astro";
10
+ //#region src/utils/plugins.d.ts
11
+ /**
12
+ * Runs Starlight plugins in the order that they are configured after validating the user-provided
13
+ * configuration and returns the final validated user config that may have been updated by the
14
+ * plugins and a list of any integrations added by the plugins.
15
+ */
16
+ declare function runPlugins(starlightUserConfig: StarlightUserConfig, pluginsUserConfig: StarlightPluginsUserConfig, context: StarlightPluginContext): Promise<{
17
+ integrations: AstroIntegration[];
18
+ starlightConfig: {
19
+ readonly title: Record<string, string>;
20
+ readonly isMultilingual: boolean;
21
+ readonly isUsingBuiltInDefaultLocale: false;
22
+ readonly defaultLocale: {
23
+ readonly locale: string | undefined;
24
+ readonly label: string;
25
+ readonly dir: "rtl" | "ltr";
26
+ readonly lang?: string | undefined;
27
+ };
28
+ readonly locales: {
29
+ [x: string]: {
30
+ label: string;
31
+ dir: "rtl" | "ltr";
32
+ lang?: string | undefined;
33
+ };
34
+ root?: {
35
+ label: string;
36
+ lang: string;
37
+ dir: "rtl" | "ltr";
38
+ } | undefined;
39
+ };
40
+ readonly pagefind: false | {
41
+ ranking: {
42
+ pageLength: number;
43
+ termFrequency: number;
44
+ termSaturation: number;
45
+ termSimilarity: number;
46
+ diacriticSimilarity: number;
47
+ metaWeights?: Record<string, number> | undefined;
48
+ };
49
+ indexWeight?: number | undefined;
50
+ mergeIndex?: {
51
+ bundlePath: string;
52
+ ranking: {
53
+ pageLength: number;
54
+ termFrequency: number;
55
+ termSaturation: number;
56
+ termSimilarity: number;
57
+ diacriticSimilarity: number;
58
+ metaWeights?: Record<string, number> | undefined;
59
+ };
60
+ basePath?: string | undefined;
61
+ baseUrl?: string | undefined;
62
+ indexWeight?: number | undefined;
63
+ mergeFilter?: Record<string, string | [string, ...string[]]> | undefined;
64
+ language?: string | undefined;
65
+ }[] | undefined;
66
+ };
67
+ readonly tableOfContents: false | {
68
+ minHeadingLevel: number;
69
+ maxHeadingLevel: number;
70
+ } | {
71
+ minHeadingLevel: number;
72
+ maxHeadingLevel: number;
73
+ };
74
+ readonly editLink: {
75
+ baseUrl?: string | undefined;
76
+ };
77
+ readonly head: {
78
+ tag: "base" | "link" | "meta" | "noscript" | "script" | "style" | "template" | "title";
79
+ attrs?: Record<string, string | boolean | undefined> | undefined;
80
+ content?: string | undefined;
81
+ }[];
82
+ readonly customCss: string[];
83
+ readonly lastUpdated: boolean;
84
+ readonly pagination: boolean;
85
+ readonly favicon: {
86
+ href: string;
87
+ type: string;
88
+ };
89
+ readonly components: {
90
+ Head: string;
91
+ ThemeProvider: string;
92
+ SkipLink: string;
93
+ PageFrame: string;
94
+ MobileMenuToggle: string;
95
+ TwoColumnContent: string;
96
+ Header: string;
97
+ SiteTitle: string;
98
+ Search: string;
99
+ SocialIcons: string;
100
+ ThemeSelect: string;
101
+ LanguageSelect: string;
102
+ Sidebar: string;
103
+ MobileMenuFooter: string;
104
+ PageSidebar: string;
105
+ TableOfContents: string;
106
+ MobileTableOfContents: string;
107
+ Banner: string;
108
+ ContentPanel: string;
109
+ PageTitle: string;
110
+ FallbackContentNotice: string;
111
+ DraftContentNotice: string;
112
+ Hero: string;
113
+ MarkdownContent: string;
114
+ Footer: string;
115
+ LastUpdated: string;
116
+ Pagination: string;
117
+ EditLink: string;
118
+ };
119
+ readonly titleDelimiter: string;
120
+ readonly disable404Route: boolean;
121
+ readonly prerender: boolean;
122
+ readonly credits: boolean;
123
+ readonly routeMiddleware: string[];
124
+ readonly markdown: {
125
+ headingLinks: boolean;
126
+ processedDirs: string[];
127
+ };
128
+ readonly description?: string | undefined;
129
+ readonly logo?: {
130
+ src: string;
131
+ alt: string;
132
+ replacesTitle: boolean;
133
+ } | {
134
+ dark: string;
135
+ light: string;
136
+ alt: string;
137
+ replacesTitle: boolean;
138
+ } | undefined;
139
+ readonly social?: {
140
+ icon: "server" | "external" | "error" | "link" | "up-caret" | "down-caret" | "right-caret" | "left-caret" | "up-arrow" | "down-arrow" | "right-arrow" | "left-arrow" | "bars" | "translate" | "pencil" | "pen" | "document" | "add-document" | "setting" | "link-alt" | "download" | "cloud-download" | "moon" | "sun" | "clock" | "laptop" | "desktop" | "mobile-android" | "window" | "database" | "code-branch" | "open-book" | "notes" | "information" | "magnifier" | "forward-slash" | "close" | "warning" | "approve-check-circle" | "approve-check" | "question-circle" | "question" | "rocket" | "star" | "puzzle" | "list-format" | "analytics" | "random" | "padlock" | "comment" | "comment-alt" | "heart" | "github" | "gitlab" | "bitbucket" | "forgejo" | "codePen" | "farcaster" | "discord" | "gitter" | "twitter" | "x.com" | "mastodon" | "codeberg" | "youtube" | "threads" | "linkedin" | "twitch" | "azureDevOps" | "microsoftTeams" | "instagram" | "stackOverflow" | "telegram" | "whatsApp" | "rss" | "facebook" | "email" | "phone" | "reddit" | "patreon" | "signal" | "slack" | "matrix" | "hackerOne" | "openCollective" | "blueSky" | "discourse" | "zulip" | "pinterest" | "tiktok" | "goodreads" | "hypothesis" | "astro" | "solidjs" | "alpine" | "pnpm" | "biome" | "bun" | "mdx" | "apple" | "linux" | "homebrew" | "nix" | "starlight" | "pkl" | "node" | "cloudflare" | "vercel" | "netlify" | "deno" | "jsr" | "nostr" | "backstage" | "confluence" | "jira" | "storybook" | "vscode" | "jetbrains" | "zed" | "vim" | "figma" | "sketch" | "npm" | "npmx" | "sourcehut" | "substack" | "chrome" | "edge" | "firefox" | "safari" | "seti:folder" | "seti:bsl" | "seti:mdo" | "seti:salesforce" | "seti:asm" | "seti:bicep" | "seti:bazel" | "seti:c" | "seti:c-sharp" | "seti:html" | "seti:cpp" | "seti:clojure" | "seti:coldfusion" | "seti:config" | "seti:crystal" | "seti:crystal_embedded" | "seti:json" | "seti:css" | "seti:csv" | "seti:xls" | "seti:cu" | "seti:cake" | "seti:cake_php" | "seti:d" | "seti:word" | "seti:elixir" | "seti:elixir_script" | "seti:hex" | "seti:elm" | "seti:favicon" | "seti:f-sharp" | "seti:git" | "seti:go" | "seti:godot" | "seti:gradle" | "seti:grails" | "seti:graphql" | "seti:hacklang" | "seti:haml" | "seti:mustache" | "seti:haskell" | "seti:haxe" | "seti:jade" | "seti:java" | "seti:javascript" | "seti:jinja" | "seti:julia" | "seti:karma" | "seti:kotlin" | "seti:dart" | "seti:liquid" | "seti:livescript" | "seti:lua" | "seti:markdown" | "seti:argdown" | "seti:info" | "seti:clock" | "seti:maven" | "seti:nim" | "seti:github" | "seti:notebook" | "seti:nunjucks" | "seti:npm" | "seti:ocaml" | "seti:odata" | "seti:perl" | "seti:php" | "seti:pipeline" | "seti:pddl" | "seti:plan" | "seti:happenings" | "seti:powershell" | "seti:prisma" | "seti:pug" | "seti:puppet" | "seti:purescript" | "seti:python" | "seti:react" | "seti:rescript" | "seti:R" | "seti:ruby" | "seti:rust" | "seti:sass" | "seti:spring" | "seti:slim" | "seti:smarty" | "seti:sbt" | "seti:scala" | "seti:ethereum" | "seti:stylus" | "seti:svelte" | "seti:swift" | "seti:db" | "seti:terraform" | "seti:tex" | "seti:default" | "seti:twig" | "seti:typescript" | "seti:tsconfig" | "seti:vala" | "seti:vite" | "seti:vue" | "seti:wasm" | "seti:wat" | "seti:xml" | "seti:yml" | "seti:prolog" | "seti:zig" | "seti:zip" | "seti:wgt" | "seti:illustrator" | "seti:photoshop" | "seti:pdf" | "seti:font" | "seti:image" | "seti:svg" | "seti:sublime" | "seti:code-search" | "seti:shell" | "seti:video" | "seti:audio" | "seti:windows" | "seti:jenkins" | "seti:babel" | "seti:bower" | "seti:docker" | "seti:code-climate" | "seti:eslint" | "seti:firebase" | "seti:firefox" | "seti:gitlab" | "seti:grunt" | "seti:gulp" | "seti:ionic" | "seti:platformio" | "seti:rollup" | "seti:stylelint" | "seti:yarn" | "seti:webpack" | "seti:lock" | "seti:license" | "seti:makefile" | "seti:heroku" | "seti:todo" | "seti:ignored";
141
+ label: string;
142
+ href: string;
143
+ }[] | undefined;
144
+ readonly sidebar?: (({
145
+ collapsed: boolean;
146
+ label: string;
147
+ translations: Record<string, string>;
148
+ attrs?: undefined;
149
+ badge?: string | {
150
+ text: string | Record<string, string>;
151
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
152
+ class?: string | undefined;
153
+ } | undefined;
154
+ } & {
155
+ items: Array<z.output<z.ZodObject<{
156
+ link: z.ZodString;
157
+ attrs: z.ZodDefault<z.ZodType<LinkHTMLAttributes, LinkHTMLAttributes, z.core.$ZodTypeInternals<LinkHTMLAttributes, LinkHTMLAttributes>>>;
158
+ label: z.ZodString;
159
+ translations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
160
+ badge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
161
+ text: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
162
+ variant: z.ZodDefault<z.ZodEnum<{
163
+ default: "default";
164
+ success: "success";
165
+ note: "note";
166
+ tip: "tip";
167
+ caution: "caution";
168
+ danger: "danger";
169
+ }>>;
170
+ class: z.ZodOptional<z.ZodString>;
171
+ }, z.core.$strip>]>>;
172
+ }, z.core.$strict>> | z.output<z.ZodObject<{
173
+ label: z.ZodOptional<z.ZodCustom<never, never>>;
174
+ autogenerate: z.ZodObject<{
175
+ directory: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
176
+ collapsed: z.ZodOptional<z.ZodBoolean>;
177
+ attrs: z.ZodDefault<z.ZodType<LinkHTMLAttributes, LinkHTMLAttributes, z.core.$ZodTypeInternals<LinkHTMLAttributes, LinkHTMLAttributes>>>;
178
+ }, z.core.$strip>;
179
+ }, z.core.$strict>> | z.output<z.ZodObject<{
180
+ slug: z.ZodString;
181
+ attrs: z.ZodDefault<z.ZodType<LinkHTMLAttributes, LinkHTMLAttributes, z.core.$ZodTypeInternals<LinkHTMLAttributes, LinkHTMLAttributes>>>;
182
+ label: z.ZodOptional<z.ZodString>;
183
+ translations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
184
+ badge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
185
+ text: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
186
+ variant: z.ZodDefault<z.ZodEnum<{
187
+ default: "default";
188
+ success: "success";
189
+ note: "note";
190
+ tip: "tip";
191
+ caution: "caution";
192
+ danger: "danger";
193
+ }>>;
194
+ class: z.ZodOptional<z.ZodString>;
195
+ }, z.core.$strip>]>>;
196
+ }, z.core.$strip>> | z.output<z.ZodPipe<z.ZodString, z.ZodTransform<{
197
+ slug: string;
198
+ attrs: LinkHTMLAttributes;
199
+ translations: Record<string, string>;
200
+ label?: string | undefined;
201
+ badge?: string | {
202
+ text: string | Record<string, string>;
203
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
204
+ class?: string | undefined;
205
+ } | undefined;
206
+ }, string>>> | ({
207
+ collapsed: boolean;
208
+ label: string;
209
+ translations: Record<string, string>;
210
+ attrs?: undefined;
211
+ badge?: string | {
212
+ text: string | Record<string, string>;
213
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
214
+ class?: string | undefined;
215
+ } | undefined;
216
+ } & /*elided*/ any)>;
217
+ }) | {
218
+ slug: string;
219
+ attrs: LinkHTMLAttributes;
220
+ translations: Record<string, string>;
221
+ label?: string | undefined;
222
+ badge?: string | {
223
+ text: string | Record<string, string>;
224
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
225
+ class?: string | undefined;
226
+ } | undefined;
227
+ } | {
228
+ link: string;
229
+ attrs: LinkHTMLAttributes;
230
+ label: string;
231
+ translations: Record<string, string>;
232
+ badge?: string | {
233
+ text: string | Record<string, string>;
234
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
235
+ class?: string | undefined;
236
+ } | undefined;
237
+ } | {
238
+ autogenerate: {
239
+ directory: string;
240
+ attrs: LinkHTMLAttributes;
241
+ collapsed?: boolean | undefined;
242
+ };
243
+ label?: undefined;
244
+ })[] | undefined;
245
+ readonly expressiveCode?: boolean | StarlightExpressiveCodeOptions | undefined;
246
+ } | {
247
+ readonly title: Record<string, string>;
248
+ readonly isMultilingual: false;
249
+ readonly isUsingBuiltInDefaultLocale: boolean;
250
+ readonly defaultLocale: {
251
+ label: string;
252
+ lang: string;
253
+ dir: "rtl" | "ltr";
254
+ locale: undefined;
255
+ };
256
+ readonly locales: undefined;
257
+ readonly pagefind: false | {
258
+ ranking: {
259
+ pageLength: number;
260
+ termFrequency: number;
261
+ termSaturation: number;
262
+ termSimilarity: number;
263
+ diacriticSimilarity: number;
264
+ metaWeights?: Record<string, number> | undefined;
265
+ };
266
+ indexWeight?: number | undefined;
267
+ mergeIndex?: {
268
+ bundlePath: string;
269
+ ranking: {
270
+ pageLength: number;
271
+ termFrequency: number;
272
+ termSaturation: number;
273
+ termSimilarity: number;
274
+ diacriticSimilarity: number;
275
+ metaWeights?: Record<string, number> | undefined;
276
+ };
277
+ basePath?: string | undefined;
278
+ baseUrl?: string | undefined;
279
+ indexWeight?: number | undefined;
280
+ mergeFilter?: Record<string, string | [string, ...string[]]> | undefined;
281
+ language?: string | undefined;
282
+ }[] | undefined;
283
+ };
284
+ readonly tableOfContents: false | {
285
+ minHeadingLevel: number;
286
+ maxHeadingLevel: number;
287
+ } | {
288
+ minHeadingLevel: number;
289
+ maxHeadingLevel: number;
290
+ };
291
+ readonly editLink: {
292
+ baseUrl?: string | undefined;
293
+ };
294
+ readonly head: {
295
+ tag: "base" | "link" | "meta" | "noscript" | "script" | "style" | "template" | "title";
296
+ attrs?: Record<string, string | boolean | undefined> | undefined;
297
+ content?: string | undefined;
298
+ }[];
299
+ readonly customCss: string[];
300
+ readonly lastUpdated: boolean;
301
+ readonly pagination: boolean;
302
+ readonly favicon: {
303
+ href: string;
304
+ type: string;
305
+ };
306
+ readonly components: {
307
+ Head: string;
308
+ ThemeProvider: string;
309
+ SkipLink: string;
310
+ PageFrame: string;
311
+ MobileMenuToggle: string;
312
+ TwoColumnContent: string;
313
+ Header: string;
314
+ SiteTitle: string;
315
+ Search: string;
316
+ SocialIcons: string;
317
+ ThemeSelect: string;
318
+ LanguageSelect: string;
319
+ Sidebar: string;
320
+ MobileMenuFooter: string;
321
+ PageSidebar: string;
322
+ TableOfContents: string;
323
+ MobileTableOfContents: string;
324
+ Banner: string;
325
+ ContentPanel: string;
326
+ PageTitle: string;
327
+ FallbackContentNotice: string;
328
+ DraftContentNotice: string;
329
+ Hero: string;
330
+ MarkdownContent: string;
331
+ Footer: string;
332
+ LastUpdated: string;
333
+ Pagination: string;
334
+ EditLink: string;
335
+ };
336
+ readonly titleDelimiter: string;
337
+ readonly disable404Route: boolean;
338
+ readonly prerender: boolean;
339
+ readonly credits: boolean;
340
+ readonly routeMiddleware: string[];
341
+ readonly markdown: {
342
+ headingLinks: boolean;
343
+ processedDirs: string[];
344
+ };
345
+ readonly description?: string | undefined;
346
+ readonly logo?: {
347
+ src: string;
348
+ alt: string;
349
+ replacesTitle: boolean;
350
+ } | {
351
+ dark: string;
352
+ light: string;
353
+ alt: string;
354
+ replacesTitle: boolean;
355
+ } | undefined;
356
+ readonly social?: {
357
+ icon: "server" | "external" | "error" | "link" | "up-caret" | "down-caret" | "right-caret" | "left-caret" | "up-arrow" | "down-arrow" | "right-arrow" | "left-arrow" | "bars" | "translate" | "pencil" | "pen" | "document" | "add-document" | "setting" | "link-alt" | "download" | "cloud-download" | "moon" | "sun" | "clock" | "laptop" | "desktop" | "mobile-android" | "window" | "database" | "code-branch" | "open-book" | "notes" | "information" | "magnifier" | "forward-slash" | "close" | "warning" | "approve-check-circle" | "approve-check" | "question-circle" | "question" | "rocket" | "star" | "puzzle" | "list-format" | "analytics" | "random" | "padlock" | "comment" | "comment-alt" | "heart" | "github" | "gitlab" | "bitbucket" | "forgejo" | "codePen" | "farcaster" | "discord" | "gitter" | "twitter" | "x.com" | "mastodon" | "codeberg" | "youtube" | "threads" | "linkedin" | "twitch" | "azureDevOps" | "microsoftTeams" | "instagram" | "stackOverflow" | "telegram" | "whatsApp" | "rss" | "facebook" | "email" | "phone" | "reddit" | "patreon" | "signal" | "slack" | "matrix" | "hackerOne" | "openCollective" | "blueSky" | "discourse" | "zulip" | "pinterest" | "tiktok" | "goodreads" | "hypothesis" | "astro" | "solidjs" | "alpine" | "pnpm" | "biome" | "bun" | "mdx" | "apple" | "linux" | "homebrew" | "nix" | "starlight" | "pkl" | "node" | "cloudflare" | "vercel" | "netlify" | "deno" | "jsr" | "nostr" | "backstage" | "confluence" | "jira" | "storybook" | "vscode" | "jetbrains" | "zed" | "vim" | "figma" | "sketch" | "npm" | "npmx" | "sourcehut" | "substack" | "chrome" | "edge" | "firefox" | "safari" | "seti:folder" | "seti:bsl" | "seti:mdo" | "seti:salesforce" | "seti:asm" | "seti:bicep" | "seti:bazel" | "seti:c" | "seti:c-sharp" | "seti:html" | "seti:cpp" | "seti:clojure" | "seti:coldfusion" | "seti:config" | "seti:crystal" | "seti:crystal_embedded" | "seti:json" | "seti:css" | "seti:csv" | "seti:xls" | "seti:cu" | "seti:cake" | "seti:cake_php" | "seti:d" | "seti:word" | "seti:elixir" | "seti:elixir_script" | "seti:hex" | "seti:elm" | "seti:favicon" | "seti:f-sharp" | "seti:git" | "seti:go" | "seti:godot" | "seti:gradle" | "seti:grails" | "seti:graphql" | "seti:hacklang" | "seti:haml" | "seti:mustache" | "seti:haskell" | "seti:haxe" | "seti:jade" | "seti:java" | "seti:javascript" | "seti:jinja" | "seti:julia" | "seti:karma" | "seti:kotlin" | "seti:dart" | "seti:liquid" | "seti:livescript" | "seti:lua" | "seti:markdown" | "seti:argdown" | "seti:info" | "seti:clock" | "seti:maven" | "seti:nim" | "seti:github" | "seti:notebook" | "seti:nunjucks" | "seti:npm" | "seti:ocaml" | "seti:odata" | "seti:perl" | "seti:php" | "seti:pipeline" | "seti:pddl" | "seti:plan" | "seti:happenings" | "seti:powershell" | "seti:prisma" | "seti:pug" | "seti:puppet" | "seti:purescript" | "seti:python" | "seti:react" | "seti:rescript" | "seti:R" | "seti:ruby" | "seti:rust" | "seti:sass" | "seti:spring" | "seti:slim" | "seti:smarty" | "seti:sbt" | "seti:scala" | "seti:ethereum" | "seti:stylus" | "seti:svelte" | "seti:swift" | "seti:db" | "seti:terraform" | "seti:tex" | "seti:default" | "seti:twig" | "seti:typescript" | "seti:tsconfig" | "seti:vala" | "seti:vite" | "seti:vue" | "seti:wasm" | "seti:wat" | "seti:xml" | "seti:yml" | "seti:prolog" | "seti:zig" | "seti:zip" | "seti:wgt" | "seti:illustrator" | "seti:photoshop" | "seti:pdf" | "seti:font" | "seti:image" | "seti:svg" | "seti:sublime" | "seti:code-search" | "seti:shell" | "seti:video" | "seti:audio" | "seti:windows" | "seti:jenkins" | "seti:babel" | "seti:bower" | "seti:docker" | "seti:code-climate" | "seti:eslint" | "seti:firebase" | "seti:firefox" | "seti:gitlab" | "seti:grunt" | "seti:gulp" | "seti:ionic" | "seti:platformio" | "seti:rollup" | "seti:stylelint" | "seti:yarn" | "seti:webpack" | "seti:lock" | "seti:license" | "seti:makefile" | "seti:heroku" | "seti:todo" | "seti:ignored";
358
+ label: string;
359
+ href: string;
360
+ }[] | undefined;
361
+ readonly sidebar?: (({
362
+ collapsed: boolean;
363
+ label: string;
364
+ translations: Record<string, string>;
365
+ attrs?: undefined;
366
+ badge?: string | {
367
+ text: string | Record<string, string>;
368
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
369
+ class?: string | undefined;
370
+ } | undefined;
371
+ } & {
372
+ items: Array<z.output<z.ZodObject<{
373
+ link: z.ZodString;
374
+ attrs: z.ZodDefault<z.ZodType<LinkHTMLAttributes, LinkHTMLAttributes, z.core.$ZodTypeInternals<LinkHTMLAttributes, LinkHTMLAttributes>>>;
375
+ label: z.ZodString;
376
+ translations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
377
+ badge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
378
+ text: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
379
+ variant: z.ZodDefault<z.ZodEnum<{
380
+ default: "default";
381
+ success: "success";
382
+ note: "note";
383
+ tip: "tip";
384
+ caution: "caution";
385
+ danger: "danger";
386
+ }>>;
387
+ class: z.ZodOptional<z.ZodString>;
388
+ }, z.core.$strip>]>>;
389
+ }, z.core.$strict>> | z.output<z.ZodObject<{
390
+ label: z.ZodOptional<z.ZodCustom<never, never>>;
391
+ autogenerate: z.ZodObject<{
392
+ directory: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
393
+ collapsed: z.ZodOptional<z.ZodBoolean>;
394
+ attrs: z.ZodDefault<z.ZodType<LinkHTMLAttributes, LinkHTMLAttributes, z.core.$ZodTypeInternals<LinkHTMLAttributes, LinkHTMLAttributes>>>;
395
+ }, z.core.$strip>;
396
+ }, z.core.$strict>> | z.output<z.ZodObject<{
397
+ slug: z.ZodString;
398
+ attrs: z.ZodDefault<z.ZodType<LinkHTMLAttributes, LinkHTMLAttributes, z.core.$ZodTypeInternals<LinkHTMLAttributes, LinkHTMLAttributes>>>;
399
+ label: z.ZodOptional<z.ZodString>;
400
+ translations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
401
+ badge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
402
+ text: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
403
+ variant: z.ZodDefault<z.ZodEnum<{
404
+ default: "default";
405
+ success: "success";
406
+ note: "note";
407
+ tip: "tip";
408
+ caution: "caution";
409
+ danger: "danger";
410
+ }>>;
411
+ class: z.ZodOptional<z.ZodString>;
412
+ }, z.core.$strip>]>>;
413
+ }, z.core.$strip>> | z.output<z.ZodPipe<z.ZodString, z.ZodTransform<{
414
+ slug: string;
415
+ attrs: LinkHTMLAttributes;
416
+ translations: Record<string, string>;
417
+ label?: string | undefined;
418
+ badge?: string | {
419
+ text: string | Record<string, string>;
420
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
421
+ class?: string | undefined;
422
+ } | undefined;
423
+ }, string>>> | ({
424
+ collapsed: boolean;
425
+ label: string;
426
+ translations: Record<string, string>;
427
+ attrs?: undefined;
428
+ badge?: string | {
429
+ text: string | Record<string, string>;
430
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
431
+ class?: string | undefined;
432
+ } | undefined;
433
+ } & /*elided*/ any)>;
434
+ }) | {
435
+ slug: string;
436
+ attrs: LinkHTMLAttributes;
437
+ translations: Record<string, string>;
438
+ label?: string | undefined;
439
+ badge?: string | {
440
+ text: string | Record<string, string>;
441
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
442
+ class?: string | undefined;
443
+ } | undefined;
444
+ } | {
445
+ link: string;
446
+ attrs: LinkHTMLAttributes;
447
+ label: string;
448
+ translations: Record<string, string>;
449
+ badge?: string | {
450
+ text: string | Record<string, string>;
451
+ variant: "default" | "success" | "note" | "tip" | "caution" | "danger";
452
+ class?: string | undefined;
453
+ } | undefined;
454
+ } | {
455
+ autogenerate: {
456
+ directory: string;
457
+ attrs: LinkHTMLAttributes;
458
+ collapsed?: boolean | undefined;
459
+ };
460
+ label?: undefined;
461
+ })[] | undefined;
462
+ readonly expressiveCode?: boolean | StarlightExpressiveCodeOptions | undefined;
463
+ };
464
+ pluginTranslations: PluginTranslations;
465
+ useTranslations: (lang: string | undefined) => I18nT;
466
+ absolutePathToLang: (path: string) => string;
467
+ }>;
468
+ declare function injectPluginTranslationsTypes(translations: PluginTranslations, injectTypes: HookParameters$1<'astro:config:done'>['injectTypes']): void;
469
+ interface RouteMiddlewareUserConfig {
470
+ entrypoint: string;
471
+ order?: 'pre' | 'post' | 'default' | undefined;
472
+ }
473
+ interface BaseStarlightPluginUserConfig {
474
+ /** Name of the Starlight plugin. */
475
+ name: string;
476
+ }
477
+ type StarlightI18nTFactory = Awaited<ReturnType<typeof createTranslationSystemFromFs>>;
478
+ type ConfigSetupHookUserConfig = ((options: {
479
+ /**
480
+ * A read-only copy of the user-supplied Starlight configuration.
481
+ *
482
+ * Note that this configuration may have been updated by other plugins configured
483
+ * before this one.
484
+ */
485
+ config: StarlightUserConfig & {
486
+ plugins?: StarlightPluginUserConfig[] | undefined;
487
+ };
488
+ /**
489
+ * A callback function to update the user-supplied Starlight configuration.
490
+ *
491
+ * You only need to provide the configuration values that you want to update but no deep
492
+ * merge is performed.
493
+ *
494
+ * @example
495
+ * {
496
+ * name: 'My Starlight Plugin',
497
+ * hooks: {
498
+ * 'config:setup'({ updateConfig }) {
499
+ * updateConfig({
500
+ * description: 'Custom description',
501
+ * });
502
+ * }
503
+ * }
504
+ * }
505
+ */
506
+ updateConfig: (newConfig: Partial<Omit<StarlightUserConfig, 'routeMiddleware'>>) => void;
507
+ /**
508
+ * A callback function to add an Astro integration required by this plugin.
509
+ *
510
+ * @see https://docs.astro.build/en/reference/integrations-reference/
511
+ *
512
+ * @example
513
+ * {
514
+ * name: 'My Starlight Plugin',
515
+ * hooks: {
516
+ * 'config:setup'({ addIntegration }) {
517
+ * addIntegration({
518
+ * name: 'My Plugin Astro Integration',
519
+ * hooks: {
520
+ * 'astro:config:setup': () => {
521
+ * // …
522
+ * },
523
+ * },
524
+ * });
525
+ * }
526
+ * }
527
+ * }
528
+ */
529
+ addIntegration: (integration: AstroIntegration) => void;
530
+ /**
531
+ * A callback function to register additional route middleware handlers.
532
+ *
533
+ * If the order of execution is important, a plugin can use the `order` option to enforce
534
+ * running first or last.
535
+ *
536
+ * @example
537
+ * {
538
+ * name: 'My Starlight Plugin',
539
+ * hooks: {
540
+ * setup({ addRouteMiddleware }) {
541
+ * addRouteMiddleware({ entrypoint: '@me/my-plugin/route-middleware' });
542
+ * },
543
+ * },
544
+ * }
545
+ */
546
+ addRouteMiddleware: (config: RouteMiddlewareUserConfig) => void;
547
+ /**
548
+ * A read-only copy of the user-supplied Astro configuration.
549
+ *
550
+ * Note that this configuration is resolved before any other integrations have run.
551
+ *
552
+ * @see https://docs.astro.build/en/reference/integrations-reference/#config-option
553
+ */
554
+ astroConfig: StarlightPluginContext['config'];
555
+ /**
556
+ * The command used to run Starlight.
557
+ *
558
+ * @see https://docs.astro.build/en/reference/integrations-reference/#command-option
559
+ */
560
+ command: StarlightPluginContext['command'];
561
+ /**
562
+ * `false` when the dev server starts, `true` when a reload is triggered.
563
+ *
564
+ * @see https://docs.astro.build/en/reference/integrations-reference/#isrestart-option
565
+ */
566
+ isRestart: StarlightPluginContext['isRestart'];
567
+ /**
568
+ * An instance of the Astro integration logger with all logged messages prefixed with the
569
+ * plugin name.
570
+ *
571
+ * @see https://docs.astro.build/en/reference/integrations-reference/#astrointegrationlogger
572
+ */
573
+ logger: StarlightPluginContext['logger'];
574
+ /**
575
+ * A callback function to generate a utility function to access UI strings for a given
576
+ * language.
577
+ *
578
+ * @see https://starlight.astro.build/guides/i18n/#using-ui-translations
579
+ *
580
+ * @example
581
+ * {
582
+ * name: 'My Starlight Plugin',
583
+ * hooks: {
584
+ * 'config:setup'({ useTranslations, logger }) {
585
+ * const t = useTranslations('en');
586
+ * logger.info(t('builtWithStarlight.label'));
587
+ * // ^ Logs 'Built with Starlight' to the console.
588
+ * }
589
+ * }
590
+ * }
591
+ */
592
+ useTranslations: Awaited<ReturnType<typeof createTranslationSystemFromFs>>;
593
+ /**
594
+ * A callback function to get the language for a given absolute file path. The returned
595
+ * language can be used with the `useTranslations` helper to get UI strings for that
596
+ * language.
597
+ *
598
+ * This can be particularly useful in remark or rehype plugins to get the language for
599
+ * the current file being processed and use it to get the appropriate UI strings for that
600
+ * language.
601
+ *
602
+ * @example
603
+ * {
604
+ * name: 'My Starlight Plugin',
605
+ * hooks: {
606
+ * 'config:setup'({ absolutePathToLang, useTranslations, logger }) {
607
+ * const lang = absolutePathToLang('/absolute/path/to/project/src/content/docs/fr/index.mdx');
608
+ * const t = useTranslations(lang);
609
+ * logger.info(t('aside.tip'));
610
+ * // ^ Logs 'Astuce' to the console.
611
+ * }
612
+ * }
613
+ * }
614
+ */
615
+ absolutePathToLang: (path: string) => string;
616
+ }) => void | Promise<void>) | undefined;
617
+ interface StarlightPluginUserConfig extends BaseStarlightPluginUserConfig {
618
+ /** The different hooks available to the plugin. */
619
+ hooks: {
620
+ 'i18n:setup'?: ((options: {
621
+ /**
622
+ * A callback function to add or update translations strings.
623
+ *
624
+ * @see https://starlight.astro.build/guides/i18n/#extend-translation-schema
625
+ *
626
+ * @example
627
+ * {
628
+ * name: 'My Starlight Plugin',
629
+ * hooks: {
630
+ * 'i18n:setup'({ injectTranslations }) {
631
+ * injectTranslations({
632
+ * en: {
633
+ * 'myPlugin.doThing': 'Do the thing',
634
+ * },
635
+ * fr: {
636
+ * 'myPlugin.doThing': 'Faire le truc',
637
+ * },
638
+ * });
639
+ * }
640
+ * }
641
+ * }
642
+ */
643
+ injectTranslations: (translations: Record<string, Record<string, string>>) => void;
644
+ }) => void | Promise<void>) | undefined;
645
+ /**
646
+ * Plugin configuration setup function called with an object containing various values that
647
+ * can be used by the plugin to interact with Starlight.
648
+ */
649
+ 'config:setup'?: ConfigSetupHookUserConfig;
650
+ /**
651
+ * @deprecated Use the `config:setup` hook instead as `setup` will be removed in a future
652
+ * version.
653
+ */
654
+ setup?: ConfigSetupHookUserConfig;
655
+ };
656
+ }
657
+ type StarlightPluginsUserConfig = StarlightPluginUserConfig[] | undefined;
658
+ declare const StarlightPluginsConfigSchema: z.ZodDefault<z.ZodArray<z.ZodObject<{
659
+ hooks: z.ZodObject<{
660
+ 'i18n:setup': z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
661
+ injectTranslations: z.ZodFunction<z.ZodTuple<readonly [z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>], null>, z.ZodVoid>;
662
+ }, z.core.$strip>], null>, z.ZodPromise<z.ZodVoid>>>;
663
+ 'config:setup': z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
664
+ config: z.ZodType<StarlightUserConfigWithPlugins, StarlightUserConfigWithPlugins>;
665
+ updateConfig: z.ZodFunction<z.ZodTuple<readonly [z.ZodType<Partial<Omit<StarlightUserConfig, "routeMiddleware">>, Partial<Omit<StarlightUserConfig, "routeMiddleware">>, z.core.$ZodTypeInternals<Partial<Omit<StarlightUserConfig, "routeMiddleware">>, Partial<Omit<StarlightUserConfig, "routeMiddleware">>>>], null>, z.ZodVoid>;
666
+ addIntegration: z.ZodFunction<z.ZodTuple<readonly [z.ZodType<AstroIntegration, AstroIntegration, z.core.$ZodTypeInternals<AstroIntegration, AstroIntegration>>], null>, z.ZodVoid>;
667
+ addRouteMiddleware: z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
668
+ entrypoint: z.ZodString;
669
+ order: z.ZodDefault<z.ZodEnum<{
670
+ default: "default";
671
+ pre: "pre";
672
+ post: "post";
673
+ }>>;
674
+ }, z.core.$strip>], null>, z.ZodVoid>;
675
+ astroConfig: z.ZodType<StarlightPluginContext["config"], StarlightPluginContext["config"]>;
676
+ command: z.ZodType<StarlightPluginContext["command"], StarlightPluginContext["command"]>;
677
+ isRestart: z.ZodType<StarlightPluginContext["isRestart"], StarlightPluginContext["isRestart"]>;
678
+ logger: z.ZodType<StarlightPluginContext["logger"], StarlightPluginContext["logger"]>;
679
+ useTranslations: z.ZodType<StarlightI18nTFactory, StarlightI18nTFactory>;
680
+ absolutePathToLang: z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodString>;
681
+ }, z.core.$strip>], null>, z.ZodPromise<z.ZodVoid>>>;
682
+ setup: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
683
+ config: z.ZodType<StarlightUserConfigWithPlugins, StarlightUserConfigWithPlugins>;
684
+ updateConfig: z.ZodFunction<z.ZodTuple<readonly [z.ZodType<Partial<Omit<StarlightUserConfig, "routeMiddleware">>, Partial<Omit<StarlightUserConfig, "routeMiddleware">>, z.core.$ZodTypeInternals<Partial<Omit<StarlightUserConfig, "routeMiddleware">>, Partial<Omit<StarlightUserConfig, "routeMiddleware">>>>], null>, z.ZodVoid>;
685
+ addIntegration: z.ZodFunction<z.ZodTuple<readonly [z.ZodType<AstroIntegration, AstroIntegration, z.core.$ZodTypeInternals<AstroIntegration, AstroIntegration>>], null>, z.ZodVoid>;
686
+ addRouteMiddleware: z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
687
+ entrypoint: z.ZodString;
688
+ order: z.ZodDefault<z.ZodEnum<{
689
+ default: "default";
690
+ pre: "pre";
691
+ post: "post";
692
+ }>>;
693
+ }, z.core.$strip>], null>, z.ZodVoid>;
694
+ astroConfig: z.ZodType<StarlightPluginContext["config"], StarlightPluginContext["config"]>;
695
+ command: z.ZodType<StarlightPluginContext["command"], StarlightPluginContext["command"]>;
696
+ isRestart: z.ZodType<StarlightPluginContext["isRestart"], StarlightPluginContext["isRestart"]>;
697
+ logger: z.ZodType<StarlightPluginContext["logger"], StarlightPluginContext["logger"]>;
698
+ useTranslations: z.ZodType<StarlightI18nTFactory, StarlightI18nTFactory>;
699
+ absolutePathToLang: z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodString>;
700
+ }, z.core.$strip>], null>, z.ZodPromise<z.ZodVoid>>>;
701
+ }, z.core.$strip>;
702
+ name: z.ZodString;
703
+ }, z.core.$strip>>>;
704
+ type StarlightPlugin = StarlightPluginUserConfig;
705
+ type HookParameters<Hook extends keyof StarlightPlugin['hooks'], HookFn = StarlightPlugin['hooks'][Hook]> = HookFn extends ((...args: any[]) => unknown) ? Parameters<HookFn>[0] : never;
706
+ type StarlightUserConfigWithPlugins = StarlightUserConfig & {
707
+ /**
708
+ * A list of plugins to extend Starlight with.
709
+ *
710
+ * @example
711
+ * // Add Starlight Algolia plugin.
712
+ * starlight({
713
+ * plugins: [starlightAlgolia({ … })],
714
+ * })
715
+ */
716
+ plugins?: StarlightPluginsUserConfig;
717
+ };
718
+ type StarlightPluginContext = Pick<HookParameters$1<'astro:config:setup'>, 'command' | 'config' | 'isRestart' | 'logger'>;
719
+ type PluginTranslations = Record<string, UserI18nSchema & Record<string, string>>;
720
+ //#endregion
721
+ export { HookParameters, PluginTranslations, StarlightPlugin, StarlightPluginContext, StarlightPluginsConfigSchema, StarlightUserConfigWithPlugins, injectPluginTranslationsTypes, runPlugins };