@astrojs/starlight 0.41.10 → 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/{style → dist/style}/anchor-links.css +13 -1
  110. package/dist/translations/ar.js +36 -0
  111. package/dist/translations/ca.js +46 -0
  112. package/dist/translations/cs.js +46 -0
  113. package/dist/translations/da.js +33 -0
  114. package/dist/translations/de.js +33 -0
  115. package/dist/translations/el.js +33 -0
  116. package/dist/translations/en.js +33 -0
  117. package/dist/translations/es.js +46 -0
  118. package/dist/translations/fa.js +33 -0
  119. package/dist/translations/fi.js +33 -0
  120. package/dist/translations/fr.js +36 -0
  121. package/dist/translations/gl.js +46 -0
  122. package/dist/translations/he.js +33 -0
  123. package/dist/translations/hi.js +36 -0
  124. package/dist/translations/hu.js +46 -0
  125. package/dist/translations/id.js +33 -0
  126. package/dist/translations/index.d.ts +48 -0
  127. package/dist/translations/index.js +75 -0
  128. package/dist/translations/it.js +36 -0
  129. package/dist/translations/ja.js +36 -0
  130. package/dist/translations/ko.js +36 -0
  131. package/dist/translations/lv.js +33 -0
  132. package/dist/translations/nb.js +33 -0
  133. package/dist/translations/nl.js +33 -0
  134. package/dist/translations/pl.js +36 -0
  135. package/dist/translations/pt.js +36 -0
  136. package/dist/translations/ro.js +33 -0
  137. package/dist/translations/ru.js +36 -0
  138. package/dist/translations/sk.js +33 -0
  139. package/dist/translations/sv.js +33 -0
  140. package/dist/translations/th.js +33 -0
  141. package/dist/translations/tr.js +33 -0
  142. package/dist/translations/uk.js +33 -0
  143. package/dist/translations/vi.js +33 -0
  144. package/dist/translations/zh-CN.js +36 -0
  145. package/dist/translations/zh-TW.js +36 -0
  146. package/dist/types.d.ts +4 -0
  147. package/dist/types.js +1 -0
  148. package/{user-components → dist/user-components}/FileTree.astro +1 -1
  149. package/{user-components → dist/user-components}/Steps.astro +1 -1
  150. package/{user-components → dist/user-components}/TabItem.astro +1 -1
  151. package/{user-components → dist/user-components}/Tabs.astro +1 -1
  152. package/dist/user-components/file-tree-icons.d.ts +178 -0
  153. package/dist/user-components/file-tree-icons.js +632 -0
  154. package/dist/user-components/file-tree-processor.d.ts +16 -0
  155. package/dist/user-components/file-tree-processor.js +132 -0
  156. package/dist/user-components/steps-processor.d.ts +10 -0
  157. package/dist/user-components/steps-processor.js +39 -0
  158. package/dist/user-components/tabs-processor.d.ts +23 -0
  159. package/dist/user-components/tabs-processor.js +70 -0
  160. package/dist/utils/base.d.ts +7 -0
  161. package/dist/utils/base.js +15 -0
  162. package/dist/utils/canonical.d.ts +10 -0
  163. package/dist/utils/canonical.js +14 -0
  164. package/dist/utils/collection-fs.d.ts +13 -0
  165. package/dist/utils/collection-fs.js +19 -0
  166. package/{utils/collection.ts → dist/utils/collection.d.ts} +9 -20
  167. package/dist/utils/collection.js +26 -0
  168. package/dist/utils/createPathFormatter.d.ts +9 -0
  169. package/dist/utils/createPathFormatter.js +35 -0
  170. package/dist/utils/createTranslationSystem.d.ts +23 -0
  171. package/dist/utils/createTranslationSystem.js +84 -0
  172. package/dist/utils/error-map.d.ts +23 -0
  173. package/dist/utils/error-map.js +125 -0
  174. package/dist/utils/format-path.d.ts +4 -0
  175. package/dist/utils/format-path.js +9 -0
  176. package/dist/utils/generateToC.d.ts +14 -0
  177. package/dist/utils/generateToC.js +25 -0
  178. package/dist/utils/git.d.ts +12 -0
  179. package/dist/utils/git.js +71 -0
  180. package/dist/utils/gitInlined.d.ts +6 -0
  181. package/dist/utils/gitInlined.js +11 -0
  182. package/dist/utils/head.d.ts +7 -0
  183. package/dist/utils/head.js +233 -0
  184. package/dist/utils/i18n.d.ts +50 -0
  185. package/dist/utils/i18n.js +141 -0
  186. package/dist/utils/localizedUrl.d.ts +8 -0
  187. package/dist/utils/localizedUrl.js +28 -0
  188. package/dist/utils/navigation.d.ts +19 -0
  189. package/dist/utils/navigation.js +353 -0
  190. package/dist/utils/path.d.ts +21 -0
  191. package/dist/utils/path.js +51 -0
  192. package/dist/utils/plugins.d.ts +721 -0
  193. package/dist/utils/plugins.js +174 -0
  194. package/dist/utils/routing/data.d.ts +20 -0
  195. package/dist/utils/routing/data.js +127 -0
  196. package/dist/utils/routing/index.d.ts +21 -0
  197. package/dist/utils/routing/index.js +106 -0
  198. package/dist/utils/routing/middleware.d.ts +11 -0
  199. package/dist/utils/routing/middleware.js +65 -0
  200. package/dist/utils/routing/types.d.ts +93 -0
  201. package/dist/utils/routing/types.js +1 -0
  202. package/dist/utils/slugs.d.ts +45 -0
  203. package/dist/utils/slugs.js +104 -0
  204. package/dist/utils/starlight-page.d.ts +36 -0
  205. package/dist/utils/starlight-page.js +120 -0
  206. package/dist/utils/translations-fs.d.ts +15 -0
  207. package/dist/utils/translations-fs.js +39 -0
  208. package/dist/utils/translations.d.ts +20 -0
  209. package/dist/utils/translations.js +29 -0
  210. package/dist/utils/types.d.ts +5 -0
  211. package/dist/utils/types.js +1 -0
  212. package/dist/utils/url.d.ts +7 -0
  213. package/{utils/url.ts → dist/utils/url.js} +5 -4
  214. package/dist/utils/user-config.d.ts +2055 -0
  215. package/dist/utils/user-config.js +136 -0
  216. package/dist/utils/validateLogoImports.d.ts +5 -0
  217. package/dist/utils/validateLogoImports.js +16 -0
  218. package/dist/utils/zodDeepMerge.d.ts +16 -0
  219. package/dist/utils/zodDeepMerge.js +53 -0
  220. package/package.json +62 -33
  221. package/CHANGELOG.md +0 -3043
  222. package/components/MobileMenuToggle.astro +0 -114
  223. package/components-internals/Icons.ts +0 -248
  224. package/components-internals/SidebarPersistState.ts +0 -71
  225. package/components-internals/TableOfContents/starlight-toc.ts +0 -127
  226. package/constants.ts +0 -4
  227. package/expressive-code.mjs +0 -23
  228. package/global.d.ts +0 -11
  229. package/i18n.d.ts +0 -18
  230. package/index.ts +0 -200
  231. package/integrations/aside-utils.ts +0 -41
  232. package/integrations/expressive-code/hast.d.ts +0 -5
  233. package/integrations/expressive-code/hast.mjs +0 -9
  234. package/integrations/expressive-code/index.ts +0 -125
  235. package/integrations/expressive-code/preprocessor.ts +0 -126
  236. package/integrations/expressive-code/themes/night-owl-dark.jsonc +0 -1796
  237. package/integrations/expressive-code/themes/night-owl-light.jsonc +0 -1695
  238. package/integrations/expressive-code/theming.ts +0 -105
  239. package/integrations/expressive-code/translations.ts +0 -36
  240. package/integrations/markdown-icon.ts +0 -13
  241. package/integrations/markdown-plugins.ts +0 -71
  242. package/integrations/markdown-processor.ts +0 -64
  243. package/integrations/pagefind.ts +0 -60
  244. package/integrations/rehype-code-rtl-support.ts +0 -37
  245. package/integrations/rehype-heading-links.ts +0 -79
  246. package/integrations/remark-asides.ts +0 -219
  247. package/integrations/remark-rehype.ts +0 -87
  248. package/integrations/satteri.ts +0 -265
  249. package/integrations/shared/absolutePathToLang.ts +0 -26
  250. package/integrations/shared/localeToLang.ts +0 -15
  251. package/integrations/shared/slugToLocale.ts +0 -18
  252. package/integrations/sitemap.ts +0 -23
  253. package/integrations/vite-layer-order.ts +0 -69
  254. package/integrations/vite-lazy-barrel-optimization.ts +0 -40
  255. package/integrations/vite-virtual-modules.ts +0 -175
  256. package/internal.ts +0 -6
  257. package/loaders.ts +0 -63
  258. package/locals.d.ts +0 -43
  259. package/locals.ts +0 -43
  260. package/route-data.ts +0 -11
  261. package/schema.ts +0 -167
  262. package/schemas/badge.ts +0 -40
  263. package/schemas/components.ts +0 -265
  264. package/schemas/expressiveCode.ts +0 -12
  265. package/schemas/favicon.ts +0 -40
  266. package/schemas/head.ts +0 -50
  267. package/schemas/hero.ts +0 -69
  268. package/schemas/i18n.ts +0 -244
  269. package/schemas/icon.ts +0 -7
  270. package/schemas/logo.ts +0 -28
  271. package/schemas/pagefind.ts +0 -128
  272. package/schemas/prevNextLink.ts +0 -18
  273. package/schemas/sidebar.ts +0 -163
  274. package/schemas/site-title.ts +0 -20
  275. package/schemas/social.ts +0 -23
  276. package/schemas/tableOfContents.ts +0 -21
  277. package/translations/README.md +0 -14
  278. package/translations/ar.json +0 -33
  279. package/translations/ca.json +0 -43
  280. package/translations/cs.json +0 -43
  281. package/translations/da.json +0 -30
  282. package/translations/de.json +0 -30
  283. package/translations/el.json +0 -30
  284. package/translations/en.json +0 -30
  285. package/translations/es.json +0 -43
  286. package/translations/fa.json +0 -30
  287. package/translations/fi.json +0 -30
  288. package/translations/fr.json +0 -33
  289. package/translations/gl.json +0 -43
  290. package/translations/he.json +0 -30
  291. package/translations/hi.json +0 -33
  292. package/translations/hu.json +0 -43
  293. package/translations/id.json +0 -30
  294. package/translations/index.ts +0 -76
  295. package/translations/it.json +0 -33
  296. package/translations/ja.json +0 -33
  297. package/translations/ko.json +0 -33
  298. package/translations/lv.json +0 -30
  299. package/translations/nb.json +0 -30
  300. package/translations/nl.json +0 -30
  301. package/translations/pl.json +0 -33
  302. package/translations/pt.json +0 -33
  303. package/translations/ro.json +0 -30
  304. package/translations/ru.json +0 -33
  305. package/translations/sk.json +0 -30
  306. package/translations/sv.json +0 -30
  307. package/translations/th.json +0 -30
  308. package/translations/tr.json +0 -30
  309. package/translations/uk.json +0 -30
  310. package/translations/vi.json +0 -30
  311. package/translations/zh-CN.json +0 -33
  312. package/translations/zh-TW.json +0 -33
  313. package/types.ts +0 -7
  314. package/user-components/file-tree-icons.ts +0 -782
  315. package/user-components/rehype-file-tree.ts +0 -251
  316. package/user-components/rehype-steps.ts +0 -85
  317. package/user-components/rehype-tabs.ts +0 -121
  318. package/utils/base.ts +0 -15
  319. package/utils/canonical.ts +0 -19
  320. package/utils/collection-fs.ts +0 -20
  321. package/utils/createPathFormatter.ts +0 -60
  322. package/utils/createTranslationSystem.ts +0 -137
  323. package/utils/error-map.ts +0 -222
  324. package/utils/format-path.ts +0 -7
  325. package/utils/generateToC.ts +0 -33
  326. package/utils/git.ts +0 -121
  327. package/utils/gitInlined.ts +0 -20
  328. package/utils/head.ts +0 -235
  329. package/utils/i18n.ts +0 -221
  330. package/utils/localizedUrl.ts +0 -51
  331. package/utils/navigation.ts +0 -566
  332. package/utils/path.ts +0 -58
  333. package/utils/plugins.ts +0 -498
  334. package/utils/routing/data.ts +0 -154
  335. package/utils/routing/index.ts +0 -135
  336. package/utils/routing/middleware.ts +0 -81
  337. package/utils/routing/types.ts +0 -101
  338. package/utils/slugs.ts +0 -119
  339. package/utils/starlight-page.ts +0 -205
  340. package/utils/translations-fs.ts +0 -54
  341. package/utils/translations.ts +0 -57
  342. package/utils/types.ts +0 -15
  343. package/utils/user-config.ts +0 -348
  344. package/utils/validateLogoImports.ts +0 -21
  345. package/utils/zodDeepMerge.ts +0 -144
  346. package/virtual-internal.d.ts +0 -149
  347. package/virtual.d.ts +0 -27
  348. /package/{components → dist/components}/AnchorHeading.astro +0 -0
  349. /package/{components → dist/components}/Banner.astro +0 -0
  350. /package/{components → dist/components}/ContentNotice.astro +0 -0
  351. /package/{components → dist/components}/ContentPanel.astro +0 -0
  352. /package/{components → dist/components}/DraftContentNotice.astro +0 -0
  353. /package/{components → dist/components}/EditLink.astro +0 -0
  354. /package/{components → dist/components}/FallbackContentNotice.astro +0 -0
  355. /package/{components → dist/components}/Footer.astro +0 -0
  356. /package/{components → dist/components}/Head.astro +0 -0
  357. /package/{components → dist/components}/Header.astro +0 -0
  358. /package/{components → dist/components}/Hero.astro +0 -0
  359. /package/{components → dist/components}/LanguageSelect.astro +0 -0
  360. /package/{components → dist/components}/LastUpdated.astro +0 -0
  361. /package/{components → dist/components}/MarkdownContent.astro +0 -0
  362. /package/{components → dist/components}/MobileMenuFooter.astro +0 -0
  363. /package/{components → dist/components}/MobileTableOfContents.astro +0 -0
  364. /package/{components → dist/components}/Page.astro +0 -0
  365. /package/{components → dist/components}/PageSidebar.astro +0 -0
  366. /package/{components → dist/components}/PageTitle.astro +0 -0
  367. /package/{components → dist/components}/Pagination.astro +0 -0
  368. /package/{components → dist/components}/Search.astro +0 -0
  369. /package/{components → dist/components}/Select.astro +0 -0
  370. /package/{components → dist/components}/Sidebar.astro +0 -0
  371. /package/{components → dist/components}/SidebarPersister.astro +0 -0
  372. /package/{components → dist/components}/SidebarRestorePoint.astro +0 -0
  373. /package/{components → dist/components}/SidebarSublist.astro +0 -0
  374. /package/{components → dist/components}/SiteTitle.astro +0 -0
  375. /package/{components → dist/components}/SkipLink.astro +0 -0
  376. /package/{components → dist/components}/SocialIcons.astro +0 -0
  377. /package/{components → dist/components}/StarlightPage.astro +0 -0
  378. /package/{components → dist/components}/TableOfContents.astro +0 -0
  379. /package/{components → dist/components}/ThemeProvider.astro +0 -0
  380. /package/{components → dist/components}/ThemeSelect.astro +0 -0
  381. /package/{components → dist/components}/TwoColumnContent.astro +0 -0
  382. /package/{components-internals → dist/components-internals}/TableOfContents/TableOfContentsList.astro +0 -0
  383. /package/{components.ts → dist/components.ts} +0 -0
  384. /package/{routes → dist/routes}/common.astro +0 -0
  385. /package/{routes → dist/routes}/ssr/404.astro +0 -0
  386. /package/{routes → dist/routes}/ssr/index.astro +0 -0
  387. /package/{routes → dist/routes}/static/404.astro +0 -0
  388. /package/{routes → dist/routes}/static/index.astro +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,236 @@
1
+ import { z } from "astro/zod";
2
+ //#region src/schemas/components.d.ts
3
+ type ComponentUserConfig = {
4
+ /**
5
+ * Component rendered inside each page’s `<head>`.
6
+ * Includes important tags including `<title>`, and `<meta charset="utf-8">`.
7
+ *
8
+ * Override this component as a last resort. Prefer the `head` option Starlight config if possible.
9
+ *
10
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Head.astro `Head` default implementation}
11
+ */
12
+ Head?: string | undefined;
13
+ /**
14
+ * Component rendered inside `<head>` that sets up dark/light theme support.
15
+ * The default implementation includes an inline script and a `<template>` used by the
16
+ * script in `ThemeSelect.astro`.
17
+ *
18
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/ThemeProvider.astro `ThemeProvider` default implementation}
19
+ */
20
+ ThemeProvider?: string | undefined;
21
+ /**
22
+ * Component rendered as the first element inside `<body>` which links to the main page
23
+ * content for accessibility. The default implementation is hidden until a user focuses it
24
+ * by tabbing with their keyboard.
25
+ *
26
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/SkipLink.astro `SkipLink` default implementation}
27
+ */
28
+ SkipLink?: string | undefined;
29
+ /**
30
+ * Layout component wrapped around most of the page content.
31
+ * The default implementation sets up the header–sidebar–main layout and includes
32
+ * `header` and `sidebar` named slots along with a default slot for the main content.
33
+ * It also renders `<MobileMenuToggle />` to support toggling the sidebar navigation
34
+ * on small (mobile) viewports.
35
+ *
36
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/PageFrame.astro `PageFrame` default implementation}
37
+ */
38
+ PageFrame?: string | undefined;
39
+ /**
40
+ * Component rendered inside `<PageFrame>` that is responsible for toggling the
41
+ * sidebar navigation on small (mobile) viewports.
42
+ *
43
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/MobileMenuToggle.astro `MobileMenuToggle` default implementation}
44
+ */
45
+ MobileMenuToggle?: string | undefined;
46
+ /**
47
+ * Layout component wrapped around the main content column and right sidebar (table of contents).
48
+ * The default implementation handles the switch between a single-column, small-viewport layout
49
+ * and a two-column, larger-viewport layout.
50
+ *
51
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/TwoColumnContent.astro `TwoColumnContent` default implementation}
52
+ */
53
+ TwoColumnContent?: string | undefined;
54
+ /**
55
+ * Header component displayed at the top of every page.
56
+ * The default implementation displays `<SiteTitle />`, `<Search />`, `<SocialIcons />`,
57
+ * `<ThemeSelect />`, and `<LanguageSelect />`.
58
+ *
59
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Header.astro `Header` default implementation}
60
+ */
61
+ Header?: string | undefined;
62
+ /**
63
+ * Component rendered at the start of the site header to render the site title.
64
+ * The default implementation includes logic for rendering logos defined in Starlight config.
65
+ *
66
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/SiteTitle.astro `SiteTitle` default implementation}
67
+ */
68
+ SiteTitle?: string | undefined;
69
+ /**
70
+ * Component used to render Starlight’s search UI. The default implementation includes the
71
+ * button in the header and the code for displaying a search modal when it is clicked.
72
+ *
73
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Search.astro `Search` default implementation}
74
+ */
75
+ Search?: string | undefined;
76
+ /**
77
+ * Component rendered in the site header including social icon links. The default
78
+ * implementation uses the `social` option in Starlight config to render icons and links.
79
+ *
80
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/SocialIcons.astro `SocialIcons` default implementation}
81
+ */
82
+ SocialIcons?: string | undefined;
83
+ /**
84
+ * Component rendered in the site header that allows users to select their preferred color scheme.
85
+ *
86
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/ThemeSelect.astro `ThemeSelect` default implementation}
87
+ */
88
+ ThemeSelect?: string | undefined;
89
+ /**
90
+ * Component rendered in the site header that allows users to switch to a different language.
91
+ *
92
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/LanguageSelect.astro `LanguageSelect` default implementation}
93
+ */
94
+ LanguageSelect?: string | undefined;
95
+ /**
96
+ * Component rendered before page content that contains global navigation.
97
+ * The default implementation displays as a sidebar on wide enough viewports and inside a
98
+ * drop-down menu on small (mobile) viewports. It also renders `<MobileMenuFooter />` to
99
+ * show additional items inside the mobile menu.
100
+ *
101
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Sidebar.astro `Sidebar` default implementation}
102
+ */
103
+ Sidebar?: string | undefined;
104
+ /**
105
+ * Component rendered at the bottom of the mobile drop-down menu.
106
+ * The default implementation renders `<ThemeSelect />` and `<LanguageSelect />`.
107
+ *
108
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/MobileMenuFooter.astro `MobileMenuFooter` default implementation}
109
+ */
110
+ MobileMenuFooter?: string | undefined;
111
+ /**
112
+ * Component rendered before the main page’s content to display a table of contents.
113
+ * The default implementation renders `<TableOfContents />` and `<MobileTableOfContents />`.
114
+ *
115
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/PageSidebar.astro `PageSidebar` default implementation}
116
+ */
117
+ PageSidebar?: string | undefined;
118
+ /**
119
+ * Component that renders the current page’s table of contents on wider viewports.
120
+ *
121
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/TableOfContents.astro `TableOfContents` default implementation}
122
+ */
123
+ TableOfContents?: string | undefined;
124
+ /**
125
+ * Component that renders the current page’s table of contents on small (mobile) viewports.
126
+ *
127
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/MobileTableOfContents.astro `MobileTableOfContents` default implementation}
128
+ */
129
+ MobileTableOfContents?: string | undefined;
130
+ /**
131
+ * Banner component rendered at the top of each page. The default implementation uses the
132
+ * page’s `banner` frontmatter value to decide whether or not to render.
133
+ *
134
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Banner.astro `Banner` default implementation}
135
+ */
136
+ Banner?: string | undefined;
137
+ /**
138
+ * Layout component used to wrap sections of the main content column.
139
+ *
140
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/ContentPanel.astro `ContentPanel` default implementation}
141
+ */
142
+ ContentPanel?: string | undefined;
143
+ /**
144
+ * Component containing the `<h1>` element for the current page.
145
+ *
146
+ * Implementations should ensure they set `id="_top"` on the `<h1>` element as in the default
147
+ * implementation.
148
+ *
149
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/PageTitle.astro `PageTitle` default implementation}
150
+ */
151
+ PageTitle?: string | undefined;
152
+ /**
153
+ * Notice displayed to users on pages where a translation for the current language is not
154
+ * available. Only used on multilingual sites.
155
+ *
156
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/FallbackContentNotice.astro `FallbackContentNotice` default implementation}
157
+ */
158
+ FallbackContentNotice?: string | undefined;
159
+ /**
160
+ * Notice displayed to users on draft pages. Only used in development mode.
161
+ *
162
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/DraftContentNotice.astro `DraftContentNotice` default implementation}
163
+ */
164
+ DraftContentNotice?: string | undefined;
165
+ /**
166
+ * Component rendered at the top of the page when `hero` is set in frontmatter. The default
167
+ * implementation shows a large title, tagline, and call-to-action links alongside an optional image.
168
+ *
169
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Hero.astro `Hero` default implementation}
170
+ */
171
+ Hero?: string | undefined;
172
+ /**
173
+ * Component rendered around each page’s main content.
174
+ * The default implementation sets up basic styles to apply to Markdown content.
175
+ *
176
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/MarkdownContent.astro `MarkdownContent` default implementation}
177
+ */
178
+ MarkdownContent?: string | undefined;
179
+ /**
180
+ * Footer component displayed at the bottom of each documentation page.
181
+ * The default implementation displays `<LastUpdated />`, `<Pagination />`, and `<EditLink />`.
182
+ *
183
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Footer.astro `Footer` default implementation}
184
+ */
185
+ Footer?: string | undefined;
186
+ /**
187
+ * Component rendered in the page footer to display the last-updated date.
188
+ *
189
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/LastUpdated.astro `LastUpdated` default implementation}
190
+ */
191
+ LastUpdated?: string | undefined;
192
+ /**
193
+ * Component rendered in the page footer to display navigation arrows between previous/next pages.
194
+ *
195
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/Pagination.astro `Pagination` default implementation}
196
+ */
197
+ Pagination?: string | undefined;
198
+ /**
199
+ * Component rendered in the page footer to display a link to where the page can be edited.
200
+ *
201
+ * @see {@link https://github.com/withastro/starlight/blob/main/packages/starlight/src/components/EditLink.astro `EditLink` default implementation}
202
+ */
203
+ EditLink?: string | undefined;
204
+ } | undefined;
205
+ declare function ComponentConfigSchema(): z.ZodPrefault<z.ZodObject<{
206
+ Head: z.ZodDefault<z.ZodString>;
207
+ ThemeProvider: z.ZodDefault<z.ZodString>;
208
+ SkipLink: z.ZodDefault<z.ZodString>;
209
+ PageFrame: z.ZodDefault<z.ZodString>;
210
+ MobileMenuToggle: z.ZodDefault<z.ZodString>;
211
+ TwoColumnContent: z.ZodDefault<z.ZodString>;
212
+ Header: z.ZodDefault<z.ZodString>;
213
+ SiteTitle: z.ZodDefault<z.ZodString>;
214
+ Search: z.ZodDefault<z.ZodString>;
215
+ SocialIcons: z.ZodDefault<z.ZodString>;
216
+ ThemeSelect: z.ZodDefault<z.ZodString>;
217
+ LanguageSelect: z.ZodDefault<z.ZodString>;
218
+ Sidebar: z.ZodDefault<z.ZodString>;
219
+ MobileMenuFooter: z.ZodDefault<z.ZodString>;
220
+ PageSidebar: z.ZodDefault<z.ZodString>;
221
+ TableOfContents: z.ZodDefault<z.ZodString>;
222
+ MobileTableOfContents: z.ZodDefault<z.ZodString>;
223
+ Banner: z.ZodDefault<z.ZodString>;
224
+ ContentPanel: z.ZodDefault<z.ZodString>;
225
+ PageTitle: z.ZodDefault<z.ZodString>;
226
+ FallbackContentNotice: z.ZodDefault<z.ZodString>;
227
+ DraftContentNotice: z.ZodDefault<z.ZodString>;
228
+ Hero: z.ZodDefault<z.ZodString>;
229
+ MarkdownContent: z.ZodDefault<z.ZodString>;
230
+ Footer: z.ZodDefault<z.ZodString>;
231
+ LastUpdated: z.ZodDefault<z.ZodString>;
232
+ Pagination: z.ZodDefault<z.ZodString>;
233
+ EditLink: z.ZodDefault<z.ZodString>;
234
+ }, z.core.$strip>>;
235
+ //#endregion
236
+ export { ComponentConfigSchema, ComponentUserConfig };
@@ -0,0 +1,36 @@
1
+ import { z } from "astro/zod";
2
+ //#region src/schemas/components.ts
3
+ function ComponentConfigSchema() {
4
+ return z.object({
5
+ Head: z.string().default("@astrojs/starlight/components/Head.astro"),
6
+ ThemeProvider: z.string().default("@astrojs/starlight/components/ThemeProvider.astro"),
7
+ SkipLink: z.string().default("@astrojs/starlight/components/SkipLink.astro"),
8
+ PageFrame: z.string().default("@astrojs/starlight/components/PageFrame.astro"),
9
+ MobileMenuToggle: z.string().default("@astrojs/starlight/components/MobileMenuToggle.astro"),
10
+ TwoColumnContent: z.string().default("@astrojs/starlight/components/TwoColumnContent.astro"),
11
+ Header: z.string().default("@astrojs/starlight/components/Header.astro"),
12
+ SiteTitle: z.string().default("@astrojs/starlight/components/SiteTitle.astro"),
13
+ Search: z.string().default("@astrojs/starlight/components/Search.astro"),
14
+ SocialIcons: z.string().default("@astrojs/starlight/components/SocialIcons.astro"),
15
+ ThemeSelect: z.string().default("@astrojs/starlight/components/ThemeSelect.astro"),
16
+ LanguageSelect: z.string().default("@astrojs/starlight/components/LanguageSelect.astro"),
17
+ Sidebar: z.string().default("@astrojs/starlight/components/Sidebar.astro"),
18
+ MobileMenuFooter: z.string().default("@astrojs/starlight/components/MobileMenuFooter.astro"),
19
+ PageSidebar: z.string().default("@astrojs/starlight/components/PageSidebar.astro"),
20
+ TableOfContents: z.string().default("@astrojs/starlight/components/TableOfContents.astro"),
21
+ MobileTableOfContents: z.string().default("@astrojs/starlight/components/MobileTableOfContents.astro"),
22
+ Banner: z.string().default("@astrojs/starlight/components/Banner.astro"),
23
+ ContentPanel: z.string().default("@astrojs/starlight/components/ContentPanel.astro"),
24
+ PageTitle: z.string().default("@astrojs/starlight/components/PageTitle.astro"),
25
+ FallbackContentNotice: z.string().default("@astrojs/starlight/components/FallbackContentNotice.astro"),
26
+ DraftContentNotice: z.string().default("@astrojs/starlight/components/DraftContentNotice.astro"),
27
+ Hero: z.string().default("@astrojs/starlight/components/Hero.astro"),
28
+ MarkdownContent: z.string().default("@astrojs/starlight/components/MarkdownContent.astro"),
29
+ Footer: z.string().default("@astrojs/starlight/components/Footer.astro"),
30
+ LastUpdated: z.string().default("@astrojs/starlight/components/LastUpdated.astro"),
31
+ Pagination: z.string().default("@astrojs/starlight/components/Pagination.astro"),
32
+ EditLink: z.string().default("@astrojs/starlight/components/EditLink.astro")
33
+ }).prefault({});
34
+ }
35
+ //#endregion
36
+ export { ComponentConfigSchema };
@@ -0,0 +1,7 @@
1
+ import { StarlightExpressiveCodeOptions } from "../integrations/expressive-code/index.js";
2
+ import { z } from "astro/zod";
3
+ //#region src/schemas/expressiveCode.d.ts
4
+ type ExpressiveCodeUserConfig = boolean | StarlightExpressiveCodeOptions | undefined;
5
+ declare const ExpressiveCodeSchema: () => z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<StarlightExpressiveCodeOptions, StarlightExpressiveCodeOptions>, z.ZodBoolean]>>;
6
+ //#endregion
7
+ export { ExpressiveCodeSchema, ExpressiveCodeUserConfig };
@@ -0,0 +1,5 @@
1
+ import { z } from "astro/zod";
2
+ //#region src/schemas/expressiveCode.ts
3
+ const ExpressiveCodeSchema = () => z.union([z.custom((value) => typeof value === "object" && value), z.boolean()]).optional();
4
+ //#endregion
5
+ export { ExpressiveCodeSchema };
@@ -0,0 +1,9 @@
1
+ import { z } from "astro/zod";
2
+ //#region src/schemas/favicon.d.ts
3
+ type FaviconUserConfig = string | undefined;
4
+ declare const FaviconSchema: () => z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<{
5
+ href: string;
6
+ type: string;
7
+ }, string>>;
8
+ //#endregion
9
+ export { FaviconSchema, FaviconUserConfig };
@@ -0,0 +1,32 @@
1
+ import { extname } from "node:path";
2
+ import { z } from "astro/zod";
3
+ //#region src/schemas/favicon.ts
4
+ const faviconTypeMap = {
5
+ ".ico": "image/x-icon",
6
+ ".gif": "image/gif",
7
+ ".jpeg": "image/jpeg",
8
+ ".jpg": "image/jpeg",
9
+ ".png": "image/png",
10
+ ".svg": "image/svg+xml"
11
+ };
12
+ const FaviconSchema = () => z.string().default("/favicon.svg").transform((favicon, ctx) => {
13
+ const { pathname } = new URL(favicon, "https://example.com");
14
+ const ext = extname(pathname).toLowerCase();
15
+ if (!isFaviconExt(ext)) {
16
+ ctx.issues.push({
17
+ code: "custom",
18
+ message: "favicon must be a .ico, .gif, .jpg, .png, or .svg file",
19
+ input: favicon
20
+ });
21
+ return z.NEVER;
22
+ }
23
+ return {
24
+ href: favicon,
25
+ type: faviconTypeMap[ext]
26
+ };
27
+ });
28
+ function isFaviconExt(ext) {
29
+ return ext in faviconTypeMap;
30
+ }
31
+ //#endregion
32
+ export { FaviconSchema };
@@ -0,0 +1,33 @@
1
+ import { z } from "astro/zod";
2
+ //#region src/schemas/head.d.ts
3
+ type HeadUserConfig = {
4
+ /** Name of the HTML tag to add to `<head>`, e.g. `'meta'`, `'link'`, or `'script'`. */
5
+ tag: 'title' | 'base' | 'link' | 'style' | 'meta' | 'script' | 'noscript' | 'template';
6
+ /** Attributes to set on the tag, e.g. `{ rel: 'stylesheet', href: '/custom.css' }`. */
7
+ attrs?: Record<string, string | boolean | undefined> | undefined;
8
+ /** Content to place inside the tag (optional). */
9
+ content?: string | undefined;
10
+ }[] | undefined;
11
+ declare const HeadConfigSchema: ({ source }: {
12
+ /**
13
+ * Depending on the content being validated, either a user's config or a page's frontmatter,
14
+ * different error messages will be shown.
15
+ */
16
+ source: "config" | "content";
17
+ }) => z.ZodDefault<z.ZodArray<z.ZodObject<{
18
+ tag: z.ZodEnum<{
19
+ base: "base";
20
+ link: "link";
21
+ meta: "meta";
22
+ noscript: "noscript";
23
+ script: "script";
24
+ style: "style";
25
+ template: "template";
26
+ title: "title";
27
+ }>;
28
+ attrs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodUndefined]>>>;
29
+ content: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strip>>>;
31
+ type HeadConfig = z.output<ReturnType<typeof HeadConfigSchema>>;
32
+ //#endregion
33
+ export { HeadConfig, HeadConfigSchema, HeadUserConfig };
@@ -0,0 +1,41 @@
1
+ import { z } from "astro/zod";
2
+ import yaml from "js-yaml";
3
+ //#region src/schemas/head.ts
4
+ const HeadConfigSchema = ({ source }) => z.array(z.object({
5
+ tag: z.enum([
6
+ "title",
7
+ "base",
8
+ "link",
9
+ "style",
10
+ "meta",
11
+ "script",
12
+ "noscript",
13
+ "template"
14
+ ]),
15
+ /** Attributes to set on the tag, e.g. `{ rel: 'stylesheet', href: '/custom.css' }`. */
16
+ attrs: z.record(z.string(), z.union([
17
+ z.string(),
18
+ z.boolean(),
19
+ z.undefined()
20
+ ])).optional(),
21
+ /** Content to place inside the tag (optional). */
22
+ content: z.string().optional()
23
+ }).superRefine((config, ctx) => {
24
+ if (config.tag !== "meta" || config.content === void 0) return;
25
+ const { content, ...rest } = config;
26
+ const correctTag = {
27
+ ...rest,
28
+ attrs: {
29
+ ...config.attrs ?? { name: "identifier" },
30
+ content: config.content
31
+ }
32
+ };
33
+ const code = source === "config" ? JSON.stringify(correctTag, null, 2) : yaml.dump([correctTag]);
34
+ ctx.issues.push({
35
+ code: "custom",
36
+ message: "The `head` configuration includes a `meta` tag with `content` which is invalid HTML.\nYou should instead use a `content` attribute " + (Object.keys(rest.attrs ?? {}).length === 0 ? "with an additional attribute such as `name`, `property`, or `http-equiv` to identify the kind of metadata it represents " : "") + `in the \`attrs\` object:\n\n` + code,
37
+ input: config
38
+ });
39
+ })).default([]);
40
+ //#endregion
41
+ export { HeadConfigSchema };