fromsrc 0.0.2 → 0.0.21

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 (408) hide show
  1. package/dist/access.d.ts +7 -7
  2. package/dist/access.js +12 -5
  3. package/dist/adapter.js +8 -16
  4. package/dist/adapterbrowser.js +6 -10
  5. package/dist/adapternext.js +7 -18
  6. package/dist/adapterreactrouter.js +5 -9
  7. package/dist/adapterremix.js +8 -17
  8. package/dist/adaptertanstack.js +6 -10
  9. package/dist/algolia.js +43 -21
  10. package/dist/analytics.d.ts +1 -1
  11. package/dist/analytics.js +16 -10
  12. package/dist/ansi.js +76 -37
  13. package/dist/api.d.ts +10 -10
  14. package/dist/api.js +14 -11
  15. package/dist/audit.d.ts +6 -6
  16. package/dist/audit.js +29 -10
  17. package/dist/autotype.js +20 -10
  18. package/dist/batch.d.ts +6 -6
  19. package/dist/batch.js +16 -9
  20. package/dist/changelog.js +28 -14
  21. package/dist/changelogutil.d.ts +4 -4
  22. package/dist/changelogutil.js +33 -13
  23. package/dist/cli.d.ts +6 -6
  24. package/dist/cli.js +7 -3
  25. package/dist/client.d.ts +1 -1
  26. package/dist/codesample.d.ts +4 -4
  27. package/dist/codesample.js +63 -24
  28. package/dist/collapse.js +31 -13
  29. package/dist/collections.js +36 -16
  30. package/dist/components/accordion.d.ts +1 -1
  31. package/dist/components/accordion.js +5 -1
  32. package/dist/components/alert.d.ts +1 -1
  33. package/dist/components/alert.js +24 -13
  34. package/dist/components/announce.js +40 -17
  35. package/dist/components/autofill.js +17 -7
  36. package/dist/components/avatar.js +4 -4
  37. package/dist/components/avatarstack.js +2 -2
  38. package/dist/components/backtotop.d.ts +1 -1
  39. package/dist/components/backtotop.js +17 -4
  40. package/dist/components/badge.js +9 -4
  41. package/dist/components/banner.js +22 -5
  42. package/dist/components/breadcrumb.js +11 -4
  43. package/dist/components/breadcrumbnav.js +37 -21
  44. package/dist/components/button.js +23 -8
  45. package/dist/components/callout.d.ts +1 -1
  46. package/dist/components/callout.js +33 -29
  47. package/dist/components/changelog.js +21 -8
  48. package/dist/components/checkbox.js +32 -19
  49. package/dist/components/code.d.ts +1 -1
  50. package/dist/components/code.js +6 -3
  51. package/dist/components/codeblock.js +157 -39
  52. package/dist/components/codecopy.d.ts +1 -1
  53. package/dist/components/codecopy.js +36 -13
  54. package/dist/components/codegroup.js +87 -25
  55. package/dist/components/collapsible.d.ts +1 -1
  56. package/dist/components/collapsible.js +5 -1
  57. package/dist/components/command.d.ts +1 -1
  58. package/dist/components/command.js +42 -15
  59. package/dist/components/compare.js +20 -8
  60. package/dist/components/content.js +121 -79
  61. package/dist/components/copybutton.d.ts +1 -1
  62. package/dist/components/copybutton.js +14 -7
  63. package/dist/components/countdown.js +9 -3
  64. package/dist/components/create.js +34 -24
  65. package/dist/components/definition.js +11 -4
  66. package/dist/components/diffview.js +63 -29
  67. package/dist/components/divider.js +5 -1
  68. package/dist/components/docheader.js +8 -1
  69. package/dist/components/doclinkcard.js +27 -3
  70. package/dist/components/dropdown.d.ts +1 -1
  71. package/dist/components/dropdown.js +32 -11
  72. package/dist/components/dynamiccode.js +5 -3
  73. package/dist/components/editlink.js +35 -23
  74. package/dist/components/embed.js +15 -7
  75. package/dist/components/endpoint.d.ts +3 -3
  76. package/dist/components/endpoint.js +24 -9
  77. package/dist/components/errormessage.d.ts +1 -1
  78. package/dist/components/errormessage.js +4 -1
  79. package/dist/components/expandcode.d.ts +1 -1
  80. package/dist/components/expandcode.js +6 -2
  81. package/dist/components/feature.js +8 -1
  82. package/dist/components/featuregrid.d.ts +4 -4
  83. package/dist/components/featuregrid.js +7 -1
  84. package/dist/components/feedback.js +6 -2
  85. package/dist/components/feedbackwidget.js +10 -4
  86. package/dist/components/files.d.ts +1 -1
  87. package/dist/components/files.js +52 -18
  88. package/dist/components/folder.d.ts +1 -1
  89. package/dist/components/folder.js +21 -4
  90. package/dist/components/footer.js +5 -1
  91. package/dist/components/formlabel.d.ts +1 -1
  92. package/dist/components/formlabel.js +31 -18
  93. package/dist/components/github.js +43 -14
  94. package/dist/components/graph.js +38 -14
  95. package/dist/components/heading.js +36 -29
  96. package/dist/components/headingcopy.js +13 -5
  97. package/dist/components/hero.js +20 -14
  98. package/dist/components/highlight.d.ts +2 -2
  99. package/dist/components/highlight.js +14 -8
  100. package/dist/components/hover.d.ts +2 -2
  101. package/dist/components/hover.js +11 -4
  102. package/dist/components/icons.js +4 -1
  103. package/dist/components/inlinetoc.js +3 -1
  104. package/dist/components/input.js +13 -3
  105. package/dist/components/install.js +34 -24
  106. package/dist/components/kbd.js +19 -11
  107. package/dist/components/langicon.d.ts +1 -1
  108. package/dist/components/langicon.js +22 -17
  109. package/dist/components/language.d.ts +1 -1
  110. package/dist/components/language.js +12 -4
  111. package/dist/components/lastupdated.d.ts +2 -2
  112. package/dist/components/lastupdated.js +36 -12
  113. package/dist/components/link.d.ts +1 -1
  114. package/dist/components/linkcard.js +3 -1
  115. package/dist/components/list.d.ts +1 -1
  116. package/dist/components/list.js +4 -1
  117. package/dist/components/math.js +33 -8
  118. package/dist/components/mermaid.js +3 -3
  119. package/dist/components/mobilenav.d.ts +2 -1
  120. package/dist/components/mobilenav.js +116 -47
  121. package/dist/components/modal.d.ts +1 -1
  122. package/dist/components/modal.js +9 -2
  123. package/dist/components/navlink.js +17 -3
  124. package/dist/components/openapi.d.ts +1 -1
  125. package/dist/components/openapi.js +102 -32
  126. package/dist/components/openapischema.d.ts +1 -1
  127. package/dist/components/openapischema.js +29 -9
  128. package/dist/components/openapitags.js +6 -2
  129. package/dist/components/pagetransition.js +5 -3
  130. package/dist/components/pagination.js +3 -2
  131. package/dist/components/panel.js +91 -15
  132. package/dist/components/playground.d.ts +1 -1
  133. package/dist/components/playground.js +153 -50
  134. package/dist/components/popover.js +9 -7
  135. package/dist/components/prelink.js +40 -9
  136. package/dist/components/prevnext.d.ts +1 -1
  137. package/dist/components/prevnext.js +36 -16
  138. package/dist/components/progress.js +2 -2
  139. package/dist/components/property.js +3 -1
  140. package/dist/components/quote.d.ts +2 -2
  141. package/dist/components/quote.js +32 -4
  142. package/dist/components/radio.js +36 -18
  143. package/dist/components/rating.js +14 -3
  144. package/dist/components/recent.d.ts +1 -1
  145. package/dist/components/recent.js +26 -10
  146. package/dist/components/responsive.js +21 -13
  147. package/dist/components/results.js +8 -4
  148. package/dist/components/screenshot.js +61 -21
  149. package/dist/components/scrollprogress.js +9 -5
  150. package/dist/components/scrollspy.d.ts +2 -2
  151. package/dist/components/scrollspy.js +9 -3
  152. package/dist/components/search.js +47 -18
  153. package/dist/components/searchbutton.js +3 -1
  154. package/dist/components/searchdialog.js +35 -22
  155. package/dist/components/searcher.d.ts +1 -1
  156. package/dist/components/searcher.js +51 -26
  157. package/dist/components/select.js +27 -13
  158. package/dist/components/shortcuts.d.ts +1 -1
  159. package/dist/components/shortcuts.js +57 -38
  160. package/dist/components/sidebar.d.ts +2 -1
  161. package/dist/components/sidebar.js +221 -56
  162. package/dist/components/sidebarfilter.d.ts +1 -1
  163. package/dist/components/sidebarfilter.js +30 -6
  164. package/dist/components/sidebarscript.d.ts +5 -0
  165. package/dist/components/sidebarscript.js +18 -0
  166. package/dist/components/skeleton.js +15 -3
  167. package/dist/components/spinner.js +13 -3
  168. package/dist/components/status.js +20 -8
  169. package/dist/components/steps.js +3 -1
  170. package/dist/components/switch.js +4 -4
  171. package/dist/components/table.js +37 -12
  172. package/dist/components/tabnav.d.ts +1 -1
  173. package/dist/components/tabnav.js +48 -36
  174. package/dist/components/tabs.d.ts +1 -1
  175. package/dist/components/tabs.js +56 -40
  176. package/dist/components/tag.js +8 -3
  177. package/dist/components/terminal.js +14 -4
  178. package/dist/components/textarea.js +96 -82
  179. package/dist/components/theme.d.ts +1 -1
  180. package/dist/components/theme.js +25 -3
  181. package/dist/components/themeprovider.d.ts +4 -4
  182. package/dist/components/themeprovider.js +16 -5
  183. package/dist/components/toast.d.ts +1 -1
  184. package/dist/components/toast.js +23 -14
  185. package/dist/components/toc/default.d.ts +1 -1
  186. package/dist/components/toc/default.js +28 -13
  187. package/dist/components/toc/hook.js +28 -14
  188. package/dist/components/toc/index.js +8 -4
  189. package/dist/components/toc/inline.js +12 -2
  190. package/dist/components/toc/minimal.js +11 -5
  191. package/dist/components/toc/zigzag.d.ts +1 -1
  192. package/dist/components/toc/zigzag.js +37 -17
  193. package/dist/components/tocprogress.d.ts +1 -1
  194. package/dist/components/tocprogress.js +66 -34
  195. package/dist/components/tooltip.d.ts +1 -1
  196. package/dist/components/tooltip.js +20 -8
  197. package/dist/components/trigger.js +13 -5
  198. package/dist/components/twoslash.js +49 -26
  199. package/dist/components/typetable.js +23 -4
  200. package/dist/components/typewriter.js +6 -2
  201. package/dist/components/version.js +40 -14
  202. package/dist/components/video.js +25 -15
  203. package/dist/components/zoom.js +6 -2
  204. package/dist/config.d.ts +2 -2
  205. package/dist/config.js +56 -30
  206. package/dist/content.d.ts +5 -5
  207. package/dist/content.js +121 -57
  208. package/dist/contentcache.d.ts +10 -10
  209. package/dist/contentcache.js +9 -5
  210. package/dist/contentdiff.d.ts +4 -4
  211. package/dist/contentdiff.js +16 -8
  212. package/dist/contributors.d.ts +4 -4
  213. package/dist/contributors.js +49 -19
  214. package/dist/diff.d.ts +6 -6
  215. package/dist/diff.js +37 -16
  216. package/dist/draft.d.ts +11 -11
  217. package/dist/draft.js +9 -5
  218. package/dist/env.js +21 -7
  219. package/dist/export.js +4 -4
  220. package/dist/frontmatter.js +11 -9
  221. package/dist/github.js +60 -30
  222. package/dist/gitsource.d.ts +1 -1
  223. package/dist/gitsource.js +16 -9
  224. package/dist/hash.d.ts +6 -6
  225. package/dist/hash.js +19 -7
  226. package/dist/highlight.d.ts +4 -4
  227. package/dist/highlight.js +34 -14
  228. package/dist/hooks/anchor.js +26 -14
  229. package/dist/hooks/arrownav.js +25 -7
  230. package/dist/hooks/async.js +3 -3
  231. package/dist/hooks/battery.js +11 -3
  232. package/dist/hooks/breakpoint.js +10 -2
  233. package/dist/hooks/clickoutside.js +10 -3
  234. package/dist/hooks/clipboard-paste.js +7 -3
  235. package/dist/hooks/clipboard.d.ts +2 -2
  236. package/dist/hooks/clipboard.js +21 -15
  237. package/dist/hooks/copy.js +11 -6
  238. package/dist/hooks/countdown.js +1 -1
  239. package/dist/hooks/counter.js +1 -1
  240. package/dist/hooks/escapekey.js +6 -1
  241. package/dist/hooks/eventlistener.js +3 -1
  242. package/dist/hooks/eventsource.js +4 -2
  243. package/dist/hooks/eyedropper.js +7 -3
  244. package/dist/hooks/favicon.js +1 -1
  245. package/dist/hooks/fetch.js +12 -4
  246. package/dist/hooks/focustrap.js +20 -8
  247. package/dist/hooks/focuswithin.js +6 -2
  248. package/dist/hooks/form.d.ts +2 -2
  249. package/dist/hooks/form.js +15 -2
  250. package/dist/hooks/fullscreen.js +1 -1
  251. package/dist/hooks/geolocation.js +8 -8
  252. package/dist/hooks/hotkeys.js +19 -7
  253. package/dist/hooks/hover.d.ts +4 -1
  254. package/dist/hooks/hover.js +3 -1
  255. package/dist/hooks/idle.js +13 -3
  256. package/dist/hooks/infinitescroll.js +4 -2
  257. package/dist/hooks/interval.js +3 -1
  258. package/dist/hooks/inview.js +7 -3
  259. package/dist/hooks/keyboard.js +36 -12
  260. package/dist/hooks/keypress.js +6 -2
  261. package/dist/hooks/list.js +11 -1
  262. package/dist/hooks/longpress.js +3 -3
  263. package/dist/hooks/map.js +1 -1
  264. package/dist/hooks/measure.js +16 -7
  265. package/dist/hooks/mediarecorder.js +7 -3
  266. package/dist/hooks/networkstate.js +4 -2
  267. package/dist/hooks/os.js +12 -4
  268. package/dist/hooks/pagination.js +6 -4
  269. package/dist/hooks/permission.js +6 -2
  270. package/dist/hooks/queue.js +4 -2
  271. package/dist/hooks/readprogress.js +6 -2
  272. package/dist/hooks/resizeobserver.js +6 -4
  273. package/dist/hooks/script.js +1 -1
  274. package/dist/hooks/scrolllock.js +6 -2
  275. package/dist/hooks/scrollspy.js +4 -2
  276. package/dist/hooks/selection.js +6 -3
  277. package/dist/hooks/share.js +18 -9
  278. package/dist/hooks/speechrecognition.js +7 -3
  279. package/dist/hooks/stepper.js +4 -4
  280. package/dist/hooks/storage.js +9 -3
  281. package/dist/hooks/stylesheet.js +4 -2
  282. package/dist/hooks/textselection.js +6 -3
  283. package/dist/hooks/throttle.js +6 -2
  284. package/dist/hooks/undoredo.js +19 -11
  285. package/dist/hooks/vibrate.js +3 -1
  286. package/dist/hooks/viewtransition.js +8 -4
  287. package/dist/hooks/wakelock.js +12 -7
  288. package/dist/hooks/websocket.js +4 -2
  289. package/dist/hooks/windowsize.js +2 -2
  290. package/dist/i18n.d.ts +2 -2
  291. package/dist/i18n.js +27 -14
  292. package/dist/index.d.ts +1 -0
  293. package/dist/index.js +1 -0
  294. package/dist/lastmodified.js +11 -5
  295. package/dist/linkcheck.d.ts +6 -6
  296. package/dist/linkcheck.js +55 -14
  297. package/dist/llms.js +20 -4
  298. package/dist/manifest.js +7 -7
  299. package/dist/mcp.js +28 -22
  300. package/dist/mdtoc.d.ts +4 -4
  301. package/dist/mdtoc.js +11 -5
  302. package/dist/mdxscope.d.ts +2 -2
  303. package/dist/mdxscope.js +3 -1
  304. package/dist/meta.js +19 -7
  305. package/dist/migrate.js +35 -25
  306. package/dist/navgen.d.ts +8 -8
  307. package/dist/navgen.js +73 -30
  308. package/dist/navtree.d.ts +1 -1
  309. package/dist/navtree.js +39 -19
  310. package/dist/oembed.d.ts +4 -4
  311. package/dist/oembed.js +24 -18
  312. package/dist/ogimage.d.ts +11 -11
  313. package/dist/ogimage.js +24 -24
  314. package/dist/openapi.js +60 -33
  315. package/dist/openapiguard.js +21 -11
  316. package/dist/openapiutil.js +66 -20
  317. package/dist/orama.js +52 -34
  318. package/dist/pipeline.d.ts +4 -4
  319. package/dist/pipeline.js +4 -4
  320. package/dist/preload.d.ts +2 -2
  321. package/dist/preload.js +4 -4
  322. package/dist/ranking.d.ts +6 -6
  323. package/dist/ranking.js +39 -13
  324. package/dist/readtime.js +3 -1
  325. package/dist/redirects.d.ts +2 -2
  326. package/dist/redirects.js +20 -12
  327. package/dist/rehype.js +16 -9
  328. package/dist/rehypeautolink.d.ts +2 -2
  329. package/dist/rehypeautolink.js +25 -23
  330. package/dist/rehypecode.js +38 -28
  331. package/dist/rehypecopy.js +17 -13
  332. package/dist/rehypeinline.js +33 -27
  333. package/dist/rehypelinks.js +28 -20
  334. package/dist/rehyperaw.js +9 -3
  335. package/dist/rehypeslug.d.ts +1 -1
  336. package/dist/rehypeslug.js +23 -19
  337. package/dist/rehypetablewrap.d.ts +2 -2
  338. package/dist/rehypetablewrap.js +9 -5
  339. package/dist/rehypetoc.d.ts +1 -1
  340. package/dist/rehypetoc.js +15 -7
  341. package/dist/remark.js +28 -13
  342. package/dist/remarkadmonition.js +40 -14
  343. package/dist/remarkannotation.d.ts +2 -2
  344. package/dist/remarkannotation.js +26 -10
  345. package/dist/remarkbadge.js +43 -31
  346. package/dist/remarkblockmath.js +29 -15
  347. package/dist/remarkcallout.js +32 -14
  348. package/dist/remarkcaption.js +28 -16
  349. package/dist/remarkcodetitle.js +29 -13
  350. package/dist/remarkcolumns.js +22 -10
  351. package/dist/remarkdetails.js +34 -14
  352. package/dist/remarkdirective.js +47 -20
  353. package/dist/remarkembed.js +38 -22
  354. package/dist/remarkfiletree.js +29 -19
  355. package/dist/remarkfootnote.js +46 -18
  356. package/dist/remarkgfm.js +13 -8
  357. package/dist/remarkheadingid.js +16 -6
  358. package/dist/remarkimage.js +54 -34
  359. package/dist/remarkinclude.js +20 -8
  360. package/dist/remarkinstall.js +20 -12
  361. package/dist/remarklinkcard.js +33 -14
  362. package/dist/remarkmath.js +34 -15
  363. package/dist/remarkmermaid.js +10 -6
  364. package/dist/remarkmeta.d.ts +2 -2
  365. package/dist/remarkmeta.js +15 -5
  366. package/dist/remarkreadingtime.d.ts +2 -2
  367. package/dist/remarkreadingtime.js +3 -1
  368. package/dist/remarksteps.js +26 -14
  369. package/dist/remarkstructure.js +16 -10
  370. package/dist/remarktabs.js +31 -14
  371. package/dist/remarktoc.js +40 -24
  372. package/dist/remarkts2js.js +51 -40
  373. package/dist/remarktwoslash.d.ts +4 -4
  374. package/dist/remarktwoslash.js +24 -14
  375. package/dist/remarkvideo.d.ts +4 -4
  376. package/dist/remarkvideo.js +42 -16
  377. package/dist/schema.d.ts +14 -14
  378. package/dist/schema.js +2 -2
  379. package/dist/search.js +106 -48
  380. package/dist/searchindex.js +86 -34
  381. package/dist/searchpolicy.js +1 -1
  382. package/dist/searchscore.js +5 -5
  383. package/dist/searchtypo.js +30 -10
  384. package/dist/seo.d.ts +2 -2
  385. package/dist/seo.js +14 -14
  386. package/dist/shortcodes.d.ts +4 -4
  387. package/dist/shortcodes.js +25 -20
  388. package/dist/sitemap.js +18 -8
  389. package/dist/snippets.js +26 -18
  390. package/dist/source.js +75 -41
  391. package/dist/stats.d.ts +4 -4
  392. package/dist/stats.js +18 -12
  393. package/dist/testing.d.ts +7 -7
  394. package/dist/testing.js +74 -29
  395. package/dist/themeutil.d.ts +6 -6
  396. package/dist/themeutil.js +145 -27
  397. package/dist/typegen.js +31 -12
  398. package/dist/validate.js +19 -7
  399. package/dist/validator.d.ts +11 -11
  400. package/dist/validator.js +68 -19
  401. package/dist/versioning.d.ts +7 -7
  402. package/dist/versioning.js +27 -11
  403. package/dist/watcher.js +39 -15
  404. package/dist/webhook.d.ts +6 -6
  405. package/dist/webhook.js +34 -12
  406. package/dist/workspace.js +26 -12
  407. package/package.json +137 -137
  408. package/styles/reset.css +1 -1
@@ -2,10 +2,10 @@
2
2
  import { useState, useEffect } from 'react';
3
3
 
4
4
  function useWindowSize() {
5
- const [size, setSize] = useState({ width: 0, height: 0 });
5
+ const [size, setSize] = useState({ height: 0, width: 0 });
6
6
  useEffect(() => {
7
7
  function update() {
8
- setSize({ width: window.innerWidth, height: window.innerHeight });
8
+ setSize({ height: window.innerHeight, width: window.innerWidth });
9
9
  }
10
10
  update();
11
11
  window.addEventListener("resize", update, { passive: true });
package/dist/i18n.d.ts CHANGED
@@ -22,9 +22,9 @@ declare function delocalizePath(path: string, config: I18nConfig): LocalizedPath
22
22
  declare function resolveContent(path: string, locale: string, config: I18nConfig): string[];
23
23
  declare function generateAlternates(path: string, config: I18nConfig): I18nResult;
24
24
  declare function createI18n(config: I18nConfig): {
25
- resolve: (path: string, locale: string) => string[];
26
- localize: (path: string, locale: string) => string;
27
25
  delocalize: (path: string) => LocalizedPath;
26
+ localize: (path: string, locale: string) => string;
27
+ resolve: (path: string, locale: string) => string[];
28
28
  };
29
29
 
30
30
  export { type I18nConfig, type I18nResult, type LocalizedPath, createI18n, delocalizePath, detectLocale, generateAlternates, localizePath, resolveContent };
package/dist/i18n.js CHANGED
@@ -1,23 +1,36 @@
1
1
  function detectLocale(acceptLanguage, locales, fallback) {
2
- if (!acceptLanguage) return fallback;
2
+ if (!acceptLanguage) {
3
+ return fallback;
4
+ }
3
5
  const set = new Set(locales);
4
6
  const entries = acceptLanguage.split(",").map((part) => {
5
7
  const [lang, ...params] = part.trim().split(";");
6
8
  const qp = params.find((p) => p.trim().startsWith("q="));
7
9
  const q = qp ? Number.parseFloat(qp.trim().slice(2)) : 1;
8
- return { lang: (lang ?? "").trim().toLowerCase(), q: Number.isNaN(q) ? 0 : q };
10
+ return {
11
+ lang: (lang ?? "").trim().toLowerCase(),
12
+ q: Number.isNaN(q) ? 0 : q
13
+ };
9
14
  }).sort((a, b) => b.q - a.q);
10
15
  for (const { lang } of entries) {
11
- if (set.has(lang)) return lang;
16
+ if (set.has(lang)) {
17
+ return lang;
18
+ }
12
19
  const base = lang.split("-")[0];
13
- if (!base) continue;
14
- if (set.has(base)) return base;
20
+ if (!base) {
21
+ continue;
22
+ }
23
+ if (set.has(base)) {
24
+ return base;
25
+ }
15
26
  }
16
27
  return fallback;
17
28
  }
18
29
  function localizePath(path, locale, config) {
19
30
  const clean = path.startsWith("/") ? path : `/${path}`;
20
- if (locale === config.defaultLocale && !config.pathPrefix) return clean;
31
+ if (locale === config.defaultLocale && !config.pathPrefix) {
32
+ return clean;
33
+ }
21
34
  return `/${locale}${clean === "/" ? "" : clean}`;
22
35
  }
23
36
  function delocalizePath(path, config) {
@@ -28,14 +41,14 @@ function delocalizePath(path, config) {
28
41
  const rest = segments.slice(1).join("/");
29
42
  return {
30
43
  locale: first,
31
- path: `/${rest}` || "/",
32
- originalPath: clean
44
+ originalPath: clean,
45
+ path: `/${rest}` || "/"
33
46
  };
34
47
  }
35
48
  return {
36
49
  locale: config.defaultLocale,
37
- path: clean,
38
- originalPath: clean
50
+ originalPath: clean,
51
+ path: clean
39
52
  };
40
53
  }
41
54
  function resolveContent(path, locale, config) {
@@ -57,16 +70,16 @@ function generateAlternates(path, config) {
57
70
  path: localizePath(stripped, l, config)
58
71
  }));
59
72
  return {
73
+ alternates,
60
74
  locale,
61
- path: localizePath(stripped, locale, config),
62
- alternates
75
+ path: localizePath(stripped, locale, config)
63
76
  };
64
77
  }
65
78
  function createI18n(config) {
66
79
  return {
67
- resolve: (path, locale) => resolveContent(path, locale, config),
80
+ delocalize: (path) => delocalizePath(path, config),
68
81
  localize: (path, locale) => localizePath(path, locale, config),
69
- delocalize: (path) => delocalizePath(path, config)
82
+ resolve: (path, locale) => resolveContent(path, locale, config)
70
83
  };
71
84
  }
72
85
 
package/dist/index.d.ts CHANGED
@@ -105,6 +105,7 @@ export { remarkToc } from './remarktoc.js';
105
105
  export { remarkFootnote } from './remarkfootnote.js';
106
106
  export { remarkBadge } from './remarkbadge.js';
107
107
  export { remarkColumns } from './remarkcolumns.js';
108
+ export { SidebarScript } from './components/sidebarscript.js';
108
109
  export { OpenApiEndpoint, OpenApiParameter, OpenApiRequestBody, OpenApiResponse, OpenApiSchema, OpenApiSpec, OpenApiTag, generateEndpointSlug } from './openapiutil.js';
109
110
  export { z } from 'zod';
110
111
  import 'react';
package/dist/index.js CHANGED
@@ -105,3 +105,4 @@ export { remarkToc } from './remarktoc';
105
105
  export { remarkFootnote } from './remarkfootnote';
106
106
  export { remarkBadge } from './remarkbadge';
107
107
  export { remarkColumns } from './remarkcolumns';
108
+ export { SidebarScript } from './components/sidebarscript';
@@ -2,11 +2,17 @@ import { execFileSync } from 'node:child_process';
2
2
 
3
3
  function lastModified(filepath) {
4
4
  try {
5
- const result = execFileSync("git", ["log", "-1", "--format=%cI", filepath], {
6
- encoding: "utf-8",
7
- stdio: ["pipe", "pipe", "pipe"]
8
- }).trim();
9
- if (!result) return null;
5
+ const result = execFileSync(
6
+ "git",
7
+ ["log", "-1", "--format=%cI", filepath],
8
+ {
9
+ encoding: "utf8",
10
+ stdio: ["pipe", "pipe", "pipe"]
11
+ }
12
+ ).trim();
13
+ if (!result) {
14
+ return null;
15
+ }
10
16
  const value = new Date(result);
11
17
  return Number.isNaN(value.getTime()) ? null : value;
12
18
  } catch {
@@ -1,19 +1,19 @@
1
- type LinkCheckResult = {
1
+ interface LinkCheckResult {
2
2
  source: string;
3
3
  href: string;
4
4
  type: "internal" | "anchor" | "external";
5
5
  status: "ok" | "broken" | "unknown";
6
- };
7
- type LinkCheckConfig = {
6
+ }
7
+ interface LinkCheckConfig {
8
8
  dir: string;
9
9
  extensions?: string[];
10
10
  baseUrl?: string;
11
- };
12
- type LinkCheckReport = {
11
+ }
12
+ interface LinkCheckReport {
13
13
  total: number;
14
14
  broken: number;
15
15
  results: LinkCheckResult[];
16
- };
16
+ }
17
17
  declare function isInternalLink(href: string): boolean;
18
18
  declare function resolveLink(source: string, href: string): string;
19
19
  declare function extractLinks(content: string, source: string): {
package/dist/linkcheck.js CHANGED
@@ -8,7 +8,9 @@ function isInternalLink(href) {
8
8
  return href.startsWith("/") || href.startsWith("./") || href.startsWith("../") || href.startsWith("#");
9
9
  }
10
10
  function resolveLink(source, href) {
11
- if (href.startsWith("/")) return href;
11
+ if (href.startsWith("/")) {
12
+ return href;
13
+ }
12
14
  return resolve(dirname(source), href);
13
15
  }
14
16
  function extractLinks(content, source) {
@@ -18,9 +20,13 @@ function extractLinks(content, source) {
18
20
  const reference = /\[([^\]]*)\]\[([^\]]+)\]/g;
19
21
  for (const m of content.matchAll(inline)) {
20
22
  const raw = m[2];
21
- if (!raw) continue;
23
+ if (!raw) {
24
+ continue;
25
+ }
22
26
  const href = raw.split(/\s/)[0];
23
- if (!href) continue;
27
+ if (!href) {
28
+ continue;
29
+ }
24
30
  if (!seen.has(href)) {
25
31
  seen.add(href);
26
32
  results.push({ href, type: linktype(href) });
@@ -28,12 +34,18 @@ function extractLinks(content, source) {
28
34
  }
29
35
  for (const m of content.matchAll(reference)) {
30
36
  const ref = m[2];
31
- if (!ref) continue;
32
- const pattern = new RegExp(`\\[${ref.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\]:\\s*(.+)`);
37
+ if (!ref) {
38
+ continue;
39
+ }
40
+ const pattern = new RegExp(
41
+ `\\[${ref.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\]:\\s*(.+)`
42
+ );
33
43
  const def = content.match(pattern);
34
44
  if (def) {
35
45
  const raw = def[1];
36
- if (!raw) continue;
46
+ if (!raw) {
47
+ continue;
48
+ }
37
49
  const href = raw.trim();
38
50
  if (!seen.has(href)) {
39
51
  seen.add(href);
@@ -44,7 +56,9 @@ function extractLinks(content, source) {
44
56
  return results;
45
57
  }
46
58
  function linktype(href) {
47
- if (href.startsWith("#")) return "anchor";
59
+ if (href.startsWith("#")) {
60
+ return "anchor";
61
+ }
48
62
  if (href.startsWith("http://") || href.startsWith("https://") || href.startsWith("mailto:")) {
49
63
  return "external";
50
64
  }
@@ -76,31 +90,58 @@ async function checkInternalLinks(config) {
76
90
  const files = await gather(config.dir, exts);
77
91
  const results = [];
78
92
  for (const filepath of files) {
79
- const content = await readFile(filepath, "utf-8");
93
+ const content = await readFile(filepath, "utf8");
80
94
  const links = extractLinks(content);
81
95
  for (const link of links) {
82
96
  if (link.type === "external") {
83
- results.push({ source: filepath, href: link.href, type: "external", status: "unknown" });
97
+ results.push({
98
+ href: link.href,
99
+ source: filepath,
100
+ status: "unknown",
101
+ type: "external"
102
+ });
84
103
  continue;
85
104
  }
86
105
  if (link.type === "anchor") {
87
106
  const slug = link.href.slice(1);
88
- const heading = new RegExp(`^#{1,6}\\s+.*${slug.replace(/-/g, "[\\s-]")}`, "im");
107
+ const heading = new RegExp(
108
+ `^#{1,6}\\s+.*${slug.replaceAll("-", "[\\s-]")}`,
109
+ "im"
110
+ );
89
111
  const status = heading.test(content) ? "ok" : "broken";
90
- results.push({ source: filepath, href: link.href, type: "anchor", status });
112
+ results.push({
113
+ href: link.href,
114
+ source: filepath,
115
+ status,
116
+ type: "anchor"
117
+ });
91
118
  continue;
92
119
  }
93
120
  const clean = link.href.split("#")[0]?.split("?")[0] ?? "";
94
121
  if (!clean) {
95
- results.push({ source: filepath, href: link.href, type: "internal", status: "broken" });
122
+ results.push({
123
+ href: link.href,
124
+ source: filepath,
125
+ status: "broken",
126
+ type: "internal"
127
+ });
96
128
  continue;
97
129
  }
98
130
  const resolved = resolveLink(filepath, clean);
99
131
  const found = await exists(resolved) || await exists(`${resolved}.md`) || await exists(`${resolved}.mdx`) || await exists(join(resolved, "index.md")) || await exists(join(resolved, "index.mdx"));
100
- results.push({ source: filepath, href: link.href, type: "internal", status: found ? "ok" : "broken" });
132
+ results.push({
133
+ href: link.href,
134
+ source: filepath,
135
+ status: found ? "ok" : "broken",
136
+ type: "internal"
137
+ });
101
138
  }
102
139
  }
103
- return { total: results.length, broken: results.filter((r) => r.status === "broken").length, results };
140
+ return {
141
+ broken: results.filter((r) => r.status === "broken").length,
142
+ results,
143
+ total: results.length
144
+ };
104
145
  }
105
146
  function formatReport(report) {
106
147
  const lines = [`${report.total} links, ${report.broken} broken`];
package/dist/llms.js CHANGED
@@ -1,5 +1,7 @@
1
1
  function clean(path) {
2
- if (!path.startsWith("/")) return `/${path}`;
2
+ if (!path.startsWith("/")) {
3
+ return `/${path}`;
4
+ }
3
5
  return path;
4
6
  }
5
7
  function formatEntry(baseUrl, docsPath, doc) {
@@ -10,7 +12,14 @@ function formatEntry(baseUrl, docsPath, doc) {
10
12
  }
11
13
  function generateLlmsIndex(config, docs) {
12
14
  const docsPath = clean(config.docsPath ?? "/docs");
13
- const lines = [`# ${config.title}`, "", config.description, "", "## pages", ""];
15
+ const lines = [
16
+ `# ${config.title}`,
17
+ "",
18
+ config.description,
19
+ "",
20
+ "## pages",
21
+ ""
22
+ ];
14
23
  for (const doc of docs) {
15
24
  lines.push(formatEntry(config.baseUrl, docsPath, doc));
16
25
  }
@@ -18,7 +27,14 @@ function generateLlmsIndex(config, docs) {
18
27
  }
19
28
  function generateLlmsFull(config, docs) {
20
29
  const docsPath = clean(config.docsPath ?? "/docs");
21
- const lines = [`# ${config.title}`, "", config.description, "", "## pages", ""];
30
+ const lines = [
31
+ `# ${config.title}`,
32
+ "",
33
+ config.description,
34
+ "",
35
+ "## pages",
36
+ ""
37
+ ];
22
38
  for (const doc of docs) {
23
39
  lines.push(formatEntry(config.baseUrl, docsPath, doc));
24
40
  }
@@ -33,7 +49,7 @@ function generateLlmsFull(config, docs) {
33
49
  return lines.join("\n");
34
50
  }
35
51
  function escapeMarkdown(text) {
36
- return text.replace(/[[\]()\\]/g, "\\$&");
52
+ return text.replaceAll(/[[\]()\\]/g, "\\$&");
37
53
  }
38
54
 
39
55
  export { generateLlmsFull, generateLlmsIndex };
package/dist/manifest.js CHANGED
@@ -1,27 +1,27 @@
1
1
  import { extractHeadings } from './content';
2
2
 
3
3
  function countWords(content) {
4
- return content.replace(/```[\s\S]*?```/g, "").replace(/<[^>]+>/g, " ").replace(/import\s+.*?from\s+['"][^'"]+['"];?/g, "").replace(/\s+/g, " ").trim().split(" ").filter((w) => w.length > 0).length;
4
+ return content.replaceAll(/```[\s\S]*?```/g, "").replaceAll(/<[^>]+>/g, " ").replaceAll(/import\s+.*?from\s+['"][^'"]+['"];?/g, "").replaceAll(/\s+/g, " ").trim().split(" ").filter((w) => w.length > 0).length;
5
5
  }
6
6
  function toManifestPage(doc) {
7
7
  const headings = extractHeadings(doc.content).map((h) => ({
8
8
  depth: h.level,
9
- text: h.text,
10
- id: h.id
9
+ id: h.id,
10
+ text: h.text
11
11
  }));
12
12
  return {
13
- slug: doc.slug,
14
- title: doc.title,
15
13
  description: doc.description,
16
14
  headings,
15
+ slug: doc.slug,
16
+ title: doc.title,
17
17
  wordCount: countWords(doc.content)
18
18
  };
19
19
  }
20
20
  function generateManifest(docs) {
21
21
  return {
22
- version: 1,
23
22
  generated: (/* @__PURE__ */ new Date()).toISOString(),
24
- pages: docs.map(toManifestPage)
23
+ pages: docs.map(toManifestPage),
24
+ version: 1
25
25
  };
26
26
  }
27
27
  function generateManifestJson(docs) {
package/dist/mcp.js CHANGED
@@ -3,18 +3,17 @@ import { trimquery } from './searchpolicy';
3
3
 
4
4
  function generateMcpManifest(config) {
5
5
  return {
6
- server: { name: config.name, version: config.version },
7
6
  capabilities: {
8
- tools: {
7
+ resources: {
9
8
  listChanged: false
10
9
  },
11
- resources: {
10
+ tools: {
12
11
  listChanged: false
13
12
  }
14
13
  },
14
+ server: { name: config.name, version: config.version },
15
15
  tools: [
16
16
  {
17
- name: "search_docs",
18
17
  description: "Search documentation",
19
18
  inputSchema: {
20
19
  type: "object",
@@ -22,10 +21,10 @@ function generateMcpManifest(config) {
22
21
  query: { type: "string", description: "Search query" }
23
22
  },
24
23
  required: ["query"]
25
- }
24
+ },
25
+ name: "search_docs"
26
26
  },
27
27
  {
28
- name: "get_page",
29
28
  description: "Get a specific documentation page",
30
29
  inputSchema: {
31
30
  type: "object",
@@ -33,39 +32,46 @@ function generateMcpManifest(config) {
33
32
  slug: { type: "string", description: "Page slug" }
34
33
  },
35
34
  required: ["slug"]
36
- }
35
+ },
36
+ name: "get_page"
37
37
  },
38
38
  {
39
- name: "list_pages",
40
39
  description: "List all available documentation pages",
41
- inputSchema: { type: "object" }
40
+ inputSchema: { type: "object" },
41
+ name: "list_pages"
42
42
  }
43
43
  ]
44
44
  };
45
45
  }
46
46
  function createMcpHandler(config, source) {
47
47
  return {
48
- async search(query) {
49
- if (!source.search) return [];
50
- const docs = await source.search();
51
- const results = await Promise.resolve(localSearch.search(trimquery(query), docs, 10));
52
- return results.map((item) => ({
53
- slug: item.doc.slug,
54
- title: item.doc.title,
55
- snippet: item.snippet ?? item.doc.description ?? item.doc.content.slice(0, 120)
56
- }));
57
- },
58
48
  async getPage(slug) {
59
49
  const result = await source.get(slug.split("/"));
60
- if (!result) return null;
50
+ if (!result) {
51
+ return null;
52
+ }
61
53
  return result.content;
62
54
  },
63
55
  async listPages() {
64
56
  const docs = await source.list();
65
57
  return docs.map((d) => ({
58
+ description: d.description,
66
59
  slug: d.slug,
67
- title: d.title,
68
- description: d.description
60
+ title: d.title
61
+ }));
62
+ },
63
+ async search(query) {
64
+ if (!source.search) {
65
+ return [];
66
+ }
67
+ const docs = await source.search();
68
+ const results = await Promise.resolve(
69
+ localSearch.search(trimquery(query), docs, 10)
70
+ );
71
+ return results.map((item) => ({
72
+ slug: item.doc.slug,
73
+ snippet: item.snippet ?? item.doc.description ?? item.doc.content.slice(0, 120),
74
+ title: item.doc.title
69
75
  }));
70
76
  }
71
77
  };
package/dist/mdtoc.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- type TocItem = {
1
+ interface TocItem {
2
2
  level: number;
3
3
  text: string;
4
4
  slug: string;
5
- };
6
- type TocOptions = {
5
+ }
6
+ interface TocOptions {
7
7
  minLevel?: number;
8
8
  maxLevel?: number;
9
9
  ordered?: boolean;
10
- };
10
+ }
11
11
  declare function extractToc(content: string): TocItem[];
12
12
  declare function generateTocMarkdown(items: TocItem[], options?: TocOptions): string;
13
13
  declare function removeToc(content: string): string;
package/dist/mdtoc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  function slugify(text) {
2
- return text.toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9_-]/g, "").replace(/-+/g, "-").replace(/^-|-$/g, "");
2
+ return text.toLowerCase().replaceAll(/\s+/g, "-").replaceAll(/[^a-z0-9_-]/g, "").replaceAll(/-+/g, "-").replaceAll(/^-|-$/g, "");
3
3
  }
4
4
  function extractToc(content) {
5
5
  const items = [];
@@ -10,15 +10,21 @@ function extractToc(content) {
10
10
  inCodeBlock = !inCodeBlock;
11
11
  continue;
12
12
  }
13
- if (inCodeBlock) continue;
13
+ if (inCodeBlock) {
14
+ continue;
15
+ }
14
16
  const match = line.match(/^(#{1,6})\s+(.+)$/);
15
- if (!match) continue;
17
+ if (!match) {
18
+ continue;
19
+ }
16
20
  const hashes = match[1];
17
21
  const heading = match[2];
18
- if (!hashes || !heading) continue;
22
+ if (!hashes || !heading) {
23
+ continue;
24
+ }
19
25
  const level = hashes.length;
20
26
  const text = heading.trim();
21
- items.push({ level, text, slug: slugify(text) });
27
+ items.push({ level, slug: slugify(text), text });
22
28
  }
23
29
  return items;
24
30
  }
@@ -2,11 +2,11 @@ import { ComponentType } from 'react';
2
2
 
3
3
  type MdxComponent = ComponentType<unknown>;
4
4
  type MdxScope = Record<string, MdxComponent>;
5
- type MdxScopeConfig = {
5
+ interface MdxScopeConfig {
6
6
  defaults?: MdxScope;
7
7
  overrides?: MdxScope;
8
8
  aliases?: Record<string, string>;
9
- };
9
+ }
10
10
  declare function createScope(config?: MdxScopeConfig): MdxScope;
11
11
  declare function mergeScopes(...scopes: MdxScope[]): MdxScope;
12
12
  declare function withDefaults(scope: MdxScope, defaults: MdxScope): MdxScope;
package/dist/mdxscope.js CHANGED
@@ -1,5 +1,7 @@
1
1
  function createScope(config) {
2
- if (!config) return {};
2
+ if (!config) {
3
+ return {};
4
+ }
3
5
  const base = { ...config.defaults };
4
6
  if (config.overrides) {
5
7
  for (const [key, value] of Object.entries(config.overrides)) {
package/dist/meta.js CHANGED
@@ -7,22 +7,34 @@ function isrecord(value) {
7
7
  return typeof value === "object" && value !== null;
8
8
  }
9
9
  function isMetaFile(data) {
10
- if (!isrecord(data)) return false;
10
+ if (!isrecord(data)) {
11
+ return false;
12
+ }
11
13
  const obj = data;
12
- if (obj.title !== void 0 && typeof obj.title !== "string") return false;
13
- if (obj.icon !== void 0 && typeof obj.icon !== "string") return false;
14
- if (obj.pages !== void 0 && !Array.isArray(obj.pages)) return false;
15
- if (Array.isArray(obj.pages) && !obj.pages.every((p) => typeof p === "string")) return false;
14
+ if (obj.title !== void 0 && typeof obj.title !== "string") {
15
+ return false;
16
+ }
17
+ if (obj.icon !== void 0 && typeof obj.icon !== "string") {
18
+ return false;
19
+ }
20
+ if (obj.pages !== void 0 && !Array.isArray(obj.pages)) {
21
+ return false;
22
+ }
23
+ if (Array.isArray(obj.pages) && !obj.pages.every((p) => typeof p === "string")) {
24
+ return false;
25
+ }
16
26
  return true;
17
27
  }
18
28
  async function loadMeta(dir) {
19
29
  if (isProduction()) {
20
30
  const cached = metaCache.get(dir);
21
- if (cached !== void 0) return cached;
31
+ if (cached !== void 0) {
32
+ return cached;
33
+ }
22
34
  }
23
35
  const filepath = join(dir, "_meta.json");
24
36
  try {
25
- const content = await readFile(filepath, "utf-8");
37
+ const content = await readFile(filepath, "utf8");
26
38
  const data = JSON.parse(content);
27
39
  if (!isMetaFile(data)) {
28
40
  if (isProduction()) {