fromsrc 0.0.2 → 0.0.22

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 +18 -8
  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 +18 -5
  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 +35 -31
  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 +11 -7
  85. package/dist/components/feedbackwidget.js +18 -12
  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 +32 -24
  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 +5 -4
  131. package/dist/components/panel.js +92 -16
  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 +4 -2
  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 +36 -23
  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 +209 -64
  162. package/dist/components/sidebarfilter.d.ts +1 -1
  163. package/dist/components/sidebarfilter.js +33 -9
  164. package/dist/components/sidebarscript.d.ts +5 -0
  165. package/dist/components/sidebarscript.js +5 -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 +26 -4
  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
@@ -8,18 +8,26 @@ import { useScrollLock } from '../hooks/scrolllock';
8
8
  import { NavLink } from './navlink';
9
9
  import { Search } from './search';
10
10
 
11
- function MobileFolder({ folder, basePath, onNavigate }) {
11
+ function MobileFolder({
12
+ folder,
13
+ basePath,
14
+ onNavigate
15
+ }) {
12
16
  const pathname = usePathname();
13
17
  const isActive = folder.href && pathname === folder.href;
14
18
  const hasActiveChild = folder.items.some((item) => {
15
19
  if (item.type === "folder") {
16
- return item.items.some((child) => child.type === "item" && pathname === child.href);
20
+ return item.items.some(
21
+ (child) => child.type === "item" && pathname === child.href
22
+ );
17
23
  }
18
24
  return item.type === "item" && pathname === item.href;
19
25
  });
20
26
  const [open, setOpen] = useState(folder.defaultOpen ?? false);
21
27
  useEffect(() => {
22
- if (hasActiveChild || isActive) setOpen(true);
28
+ if (hasActiveChild || isActive) {
29
+ setOpen(true);
30
+ }
23
31
  }, [hasActiveChild, isActive]);
24
32
  const toggle = useCallback(() => {
25
33
  setOpen((prev) => !prev);
@@ -68,31 +76,47 @@ function MobileFolder({ folder, basePath, onNavigate }) {
68
76
  viewBox: "0 0 24 24",
69
77
  stroke: "currentColor",
70
78
  "aria-hidden": "true",
71
- children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
79
+ children: /* @__PURE__ */ jsx(
80
+ "path",
81
+ {
82
+ strokeLinecap: "round",
83
+ strokeLinejoin: "round",
84
+ strokeWidth: 2,
85
+ d: "M19 9l-7 7-7-7"
86
+ }
87
+ )
72
88
  }
73
89
  )
74
90
  }
75
91
  )
76
92
  ] }),
77
- open && /* @__PURE__ */ jsx("ul", { role: "group", className: "mt-0.5 ml-2 pl-2 border-l border-line space-y-0.5", children: folder.items.map((item) => {
78
- if (item.type === "folder") {
79
- return /* @__PURE__ */ jsx(
80
- MobileFolder,
81
- {
82
- folder: item,
83
- basePath,
84
- onNavigate
85
- },
86
- item.title
87
- );
93
+ open && /* @__PURE__ */ jsx(
94
+ "ul",
95
+ {
96
+ role: "group",
97
+ className: "mt-0.5 ml-2 pl-2 border-l border-line space-y-0.5",
98
+ children: folder.items.map((item) => {
99
+ if (item.type === "folder") {
100
+ return /* @__PURE__ */ jsx(
101
+ MobileFolder,
102
+ {
103
+ folder: item,
104
+ basePath,
105
+ onNavigate
106
+ },
107
+ item.title
108
+ );
109
+ }
110
+ return /* @__PURE__ */ jsx("li", { role: "none", children: /* @__PURE__ */ jsx(NavLink, { href: item.href, icon: item.icon, onClick: onNavigate, children: item.title }) }, item.href);
111
+ })
88
112
  }
89
- return /* @__PURE__ */ jsx("li", { role: "none", children: /* @__PURE__ */ jsx(NavLink, { href: item.href, icon: item.icon, onClick: onNavigate, children: item.title }) }, item.href);
90
- }) })
113
+ )
91
114
  ] });
92
115
  }
93
116
  function MobileNav({
94
117
  title,
95
118
  logo,
119
+ boxed = false,
96
120
  navigation,
97
121
  docs,
98
122
  basePath = "/docs",
@@ -124,7 +148,11 @@ function MobileNav({
124
148
  openRef.current?.focus();
125
149
  }, 200);
126
150
  }, []);
127
- useFocusTrap(drawerRef, { enabled: open, onEscape: close, restoreFocus: false });
151
+ useFocusTrap(drawerRef, {
152
+ enabled: open,
153
+ onEscape: close,
154
+ restoreFocus: false
155
+ });
128
156
  return /* @__PURE__ */ jsxs(Fragment, { children: [
129
157
  /* @__PURE__ */ jsxs("header", { className: "lg:hidden sticky top-0 z-40 flex items-center justify-between px-4 h-14 border-b border-line bg-bg", children: [
130
158
  /* @__PURE__ */ jsxs(
@@ -133,7 +161,13 @@ function MobileNav({
133
161
  href: "/",
134
162
  className: "flex items-center gap-2 text-sm text-fg min-h-[44px] focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg rounded-md",
135
163
  children: [
136
- /* @__PURE__ */ jsx("div", { className: "p-1 rounded-lg bg-surface border border-line", children: logo }),
164
+ /* @__PURE__ */ jsx(
165
+ "div",
166
+ {
167
+ className: boxed ? "w-8 h-8 flex items-center justify-center shrink-0 p-1 rounded-lg bg-surface border border-line" : "w-8 h-8 flex items-center justify-center shrink-0",
168
+ children: logo
169
+ }
170
+ ),
137
171
  title
138
172
  ]
139
173
  }
@@ -149,7 +183,16 @@ function MobileNav({
149
183
  "aria-controls": "mobile-nav-drawer",
150
184
  className: "p-2.5 min-w-[44px] min-h-[44px] flex items-center justify-center text-muted hover:text-fg active:text-fg transition-colors focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg rounded-md",
151
185
  "aria-label": "open menu",
152
- children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "currentColor", className: "size-5", children: /* @__PURE__ */ jsx("path", { d: "M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 010 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 010 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 000 1.5h12.5a.75.75 0 000-1.5H1.75z" }) })
186
+ children: /* @__PURE__ */ jsx(
187
+ "svg",
188
+ {
189
+ "aria-hidden": "true",
190
+ viewBox: "0 0 16 16",
191
+ fill: "currentColor",
192
+ className: "size-5",
193
+ children: /* @__PURE__ */ jsx("path", { d: "M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 010 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 010 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 000 1.5h12.5a.75.75 0 000-1.5H1.75z" })
194
+ }
195
+ )
153
196
  }
154
197
  )
155
198
  ] }),
@@ -184,7 +227,16 @@ function MobileNav({
184
227
  onClick: close,
185
228
  className: "p-2.5 min-w-[44px] min-h-[44px] flex items-center justify-center text-muted hover:text-fg active:text-fg transition-colors focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg rounded-md",
186
229
  "aria-label": "close menu",
187
- children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "currentColor", className: "size-5", children: /* @__PURE__ */ jsx("path", { d: "M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z" }) })
230
+ children: /* @__PURE__ */ jsx(
231
+ "svg",
232
+ {
233
+ "aria-hidden": "true",
234
+ viewBox: "0 0 16 16",
235
+ fill: "currentColor",
236
+ className: "size-5",
237
+ children: /* @__PURE__ */ jsx("path", { d: "M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z" })
238
+ }
239
+ )
188
240
  }
189
241
  )
190
242
  ] }),
@@ -194,33 +246,50 @@ function MobileNav({
194
246
  {
195
247
  "aria-label": "main navigation",
196
248
  className: "flex-1 px-4 pb-4 overflow-y-auto overscroll-contain [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none] [-webkit-overflow-scrolling:touch]",
197
- children: navigation.map((section) => /* @__PURE__ */ jsxs("div", { className: "mb-6", role: "region", "aria-label": section.title, children: [
198
- /* @__PURE__ */ jsx("h3", { className: "px-2 mb-2 text-[11px] text-muted uppercase tracking-wider", children: section.title }),
199
- /* @__PURE__ */ jsx("ul", { role: "list", className: "space-y-0.5", children: section.items.map((item, i) => {
200
- if (!("type" in item)) {
201
- return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
202
- NavLink,
203
- {
204
- href: item.slug ? `${basePath}/${item.slug}` : basePath,
205
- onClick: close,
206
- children: item.title
249
+ children: navigation.map((section) => /* @__PURE__ */ jsxs(
250
+ "div",
251
+ {
252
+ className: "mb-6",
253
+ role: "region",
254
+ "aria-label": section.title,
255
+ children: [
256
+ /* @__PURE__ */ jsx("h3", { className: "px-2 mb-2 text-[11px] text-muted uppercase tracking-wider", children: section.title }),
257
+ /* @__PURE__ */ jsx("ul", { role: "list", className: "space-y-0.5", children: section.items.map((item, i) => {
258
+ if (!("type" in item)) {
259
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
260
+ NavLink,
261
+ {
262
+ href: item.slug ? `${basePath}/${item.slug}` : basePath,
263
+ onClick: close,
264
+ children: item.title
265
+ }
266
+ ) }, item.slug || i);
207
267
  }
208
- ) }, item.slug || i);
209
- }
210
- if (item.type === "folder") {
211
- return /* @__PURE__ */ jsx(
212
- MobileFolder,
213
- {
214
- folder: item,
215
- basePath,
216
- onNavigate: close
217
- },
218
- i
219
- );
220
- }
221
- return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(NavLink, { href: item.href, icon: item.icon, onClick: close, children: item.title }) }, i);
222
- }) })
223
- ] }, section.title))
268
+ if (item.type === "folder") {
269
+ return /* @__PURE__ */ jsx(
270
+ MobileFolder,
271
+ {
272
+ folder: item,
273
+ basePath,
274
+ onNavigate: close
275
+ },
276
+ i
277
+ );
278
+ }
279
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
280
+ NavLink,
281
+ {
282
+ href: item.href,
283
+ icon: item.icon,
284
+ onClick: close,
285
+ children: item.title
286
+ }
287
+ ) }, i);
288
+ }) })
289
+ ]
290
+ },
291
+ section.title
292
+ ))
224
293
  }
225
294
  ),
226
295
  github && /* @__PURE__ */ jsx("div", { className: "px-4 py-3 border-t border-line", children: /* @__PURE__ */ jsxs(
@@ -13,6 +13,6 @@ interface ModalProps {
13
13
  title?: string;
14
14
  children: ReactNode;
15
15
  }
16
- declare function Modal({ open, onClose, title, children }: ModalProps): JSX.Element | null;
16
+ declare function Modal({ open, onClose, title, children, }: ModalProps): JSX.Element | null;
17
17
 
18
18
  export { Modal, type ModalProps };
@@ -5,7 +5,12 @@ import { useFocusTrap } from '../hooks/focustrap';
5
5
  import { useScrollLock } from '../hooks/scrolllock';
6
6
  import { IconX } from './icons';
7
7
 
8
- function Modal({ open, onClose, title, children }) {
8
+ function Modal({
9
+ open,
10
+ onClose,
11
+ title,
12
+ children
13
+ }) {
9
14
  const id = useId();
10
15
  const dialogRef = useRef(null);
11
16
  const [visible, setVisible] = useState(false);
@@ -26,7 +31,9 @@ function Modal({ open, onClose, title, children }) {
26
31
  return () => clearTimeout(timeout);
27
32
  }
28
33
  }, [open]);
29
- if (!visible) return null;
34
+ if (!visible) {
35
+ return null;
36
+ }
30
37
  return /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
31
38
  /* @__PURE__ */ jsx(
32
39
  "button",
@@ -17,7 +17,7 @@ function NavLinkComponent({
17
17
  const isExternal = external ?? href.startsWith("http");
18
18
  useEffect(() => {
19
19
  if (isActive && ref.current) {
20
- ref.current.scrollIntoView({ block: "nearest", behavior: "smooth" });
20
+ ref.current.scrollIntoView({ behavior: "smooth", block: "nearest" });
21
21
  }
22
22
  }, [isActive]);
23
23
  if (isExternal) {
@@ -31,7 +31,14 @@ function NavLinkComponent({
31
31
  "aria-label": `${typeof children === "string" ? children : ""} (opens in new tab)`,
32
32
  className: "flex items-center gap-2 px-2 py-1.5 text-sm rounded-lg text-muted hover:bg-surface/50 hover:text-fg transition-colors [transition-duration:150ms] hover:[transition-duration:0ms]",
33
33
  children: [
34
- icon && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0 [&>svg]:w-4 [&>svg]:h-4", "aria-hidden": "true", children: icon }),
34
+ icon && /* @__PURE__ */ jsx(
35
+ "span",
36
+ {
37
+ className: "w-4 h-4 shrink-0 [&>svg]:w-4 [&>svg]:h-4",
38
+ "aria-hidden": "true",
39
+ children: icon
40
+ }
41
+ ),
35
42
  /* @__PURE__ */ jsx("span", { className: "truncate", children }),
36
43
  /* @__PURE__ */ jsx(
37
44
  "svg",
@@ -66,7 +73,14 @@ function NavLinkComponent({
66
73
  "aria-current": isActive ? "page" : void 0,
67
74
  className: `flex items-center gap-2 px-2 py-1.5 text-sm rounded-lg transition-colors [transition-duration:150ms] hover:[transition-duration:0ms] ${isActive ? "text-fg bg-surface/80 font-medium" : "text-muted hover:text-fg hover:bg-surface/50"}`,
68
75
  children: [
69
- icon && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0 [&>svg]:w-4 [&>svg]:h-4", "aria-hidden": "true", children: icon }),
76
+ icon && /* @__PURE__ */ jsx(
77
+ "span",
78
+ {
79
+ className: "w-4 h-4 shrink-0 [&>svg]:w-4 [&>svg]:h-4",
80
+ "aria-hidden": "true",
81
+ children: icon
82
+ }
83
+ ),
70
84
  /* @__PURE__ */ jsx("span", { className: "truncate", children })
71
85
  ]
72
86
  }
@@ -8,7 +8,7 @@ interface OpenapiProps {
8
8
  path?: string;
9
9
  group?: "none" | "tag";
10
10
  }
11
- declare function OpenapiBase({ spec, tag, method, path, group }: OpenapiProps): JSX.Element;
11
+ declare function OpenapiBase({ spec, tag, method, path, group, }: OpenapiProps): JSX.Element;
12
12
  declare const Openapi: react.MemoExoticComponent<typeof OpenapiBase>;
13
13
 
14
14
  export { Openapi, type OpenapiProps };
@@ -12,7 +12,9 @@ function bymethod(endpoint, method) {
12
12
  return endpoint.method.toLowerCase() === method.toLowerCase();
13
13
  }
14
14
  function bytag(endpoint, tag) {
15
- return endpoint.tags.some((entry) => entry.toLowerCase() === tag.toLowerCase());
15
+ return endpoint.tags.some(
16
+ (entry) => entry.toLowerCase() === tag.toLowerCase()
17
+ );
16
18
  }
17
19
  function parsedspec(spec) {
18
20
  try {
@@ -22,39 +24,61 @@ function parsedspec(spec) {
22
24
  }
23
25
  }
24
26
  function methodrank(method) {
25
- const list = ["get", "post", "put", "patch", "delete", "options", "head", "trace"];
27
+ const list = [
28
+ "get",
29
+ "post",
30
+ "put",
31
+ "patch",
32
+ "delete",
33
+ "options",
34
+ "head",
35
+ "trace"
36
+ ];
26
37
  const index = list.indexOf(method.toLowerCase());
27
38
  return index === -1 ? list.length : index;
28
39
  }
29
40
  function sorted(endpoints) {
30
41
  return [...endpoints].sort((left, right) => {
31
- if (left.path === right.path) return methodrank(left.method) - methodrank(right.method);
42
+ if (left.path === right.path) {
43
+ return methodrank(left.method) - methodrank(right.method);
44
+ }
32
45
  return left.path.localeCompare(right.path);
33
46
  });
34
47
  }
35
48
  function formatseclabel(list) {
36
- if (!list || list.length === 0) return null;
49
+ if (!list || list.length === 0) {
50
+ return null;
51
+ }
37
52
  return list.join(", ");
38
53
  }
39
54
  function tagname(endpoint) {
40
55
  const first = endpoint.tags[0];
41
- if (!first) return "untagged";
56
+ if (!first) {
57
+ return "untagged";
58
+ }
42
59
  return first;
43
60
  }
44
61
  function tagid(name) {
45
- return `tag-${name.toLowerCase().replace(/[^a-z0-9]+/g, "-")}`;
62
+ return `tag-${name.toLowerCase().replaceAll(/[^a-z0-9]+/g, "-")}`;
46
63
  }
47
64
  function groups(endpoints) {
48
65
  const map = /* @__PURE__ */ new Map();
49
66
  for (const endpoint of endpoints) {
50
67
  const name = tagname(endpoint);
51
68
  const list = map.get(name);
52
- if (list) list.push(endpoint);
53
- else map.set(name, [endpoint]);
69
+ if (list) {
70
+ list.push(endpoint);
71
+ } else {
72
+ map.set(name, [endpoint]);
73
+ }
54
74
  }
55
- return Array.from(map.entries()).sort((left, right) => {
56
- if (left[0] === "untagged") return 1;
57
- if (right[0] === "untagged") return -1;
75
+ return [...map.entries()].sort((left, right) => {
76
+ if (left[0] === "untagged") {
77
+ return 1;
78
+ }
79
+ if (right[0] === "untagged") {
80
+ return -1;
81
+ }
58
82
  return left[0].localeCompare(right[0]);
59
83
  });
60
84
  }
@@ -63,7 +87,14 @@ function endpointmeta(endpoint) {
63
87
  return /* @__PURE__ */ jsxs("div", { className: "mb-4 flex flex-wrap items-center gap-2 text-xs", children: [
64
88
  endpoint.operationId && /* @__PURE__ */ jsx("span", { className: "rounded border border-line px-2 py-1 font-mono text-dim", children: endpoint.operationId }),
65
89
  endpoint.deprecated && /* @__PURE__ */ jsx("span", { className: "rounded border border-red-500/30 bg-red-500/10 px-2 py-1 text-red-400", children: "deprecated" }),
66
- endpoint.tags.map((entry) => /* @__PURE__ */ jsx("span", { className: "rounded border border-line px-2 py-1 text-muted", children: entry }, `${endpoint.path}-${endpoint.method}-tag-${entry}`)),
90
+ endpoint.tags.map((entry) => /* @__PURE__ */ jsx(
91
+ "span",
92
+ {
93
+ className: "rounded border border-line px-2 py-1 text-muted",
94
+ children: entry
95
+ },
96
+ `${endpoint.path}-${endpoint.method}-tag-${entry}`
97
+ )),
67
98
  security && /* @__PURE__ */ jsxs("span", { className: "rounded border border-line px-2 py-1 text-muted", children: [
68
99
  "security: ",
69
100
  security
@@ -91,34 +122,66 @@ function endpointview(endpoint) {
91
122
  )) }),
92
123
  endpoint.requestBody?.content && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
93
124
  /* @__PURE__ */ jsx("h4", { className: "text-sm font-medium text-fg mb-2", children: "request body" }),
94
- /* @__PURE__ */ jsx("div", { className: "space-y-3", children: Object.entries(endpoint.requestBody.content).map(([media, content]) => /* @__PURE__ */ jsxs("div", { className: "rounded border border-line p-3", children: [
95
- /* @__PURE__ */ jsx("p", { className: "text-xs font-mono text-dim mb-2", children: media }),
96
- /* @__PURE__ */ jsx(Openapischema, { schema: content.schema })
97
- ] }, media)) })
125
+ /* @__PURE__ */ jsx("div", { className: "space-y-3", children: Object.entries(endpoint.requestBody.content).map(
126
+ ([media, content]) => /* @__PURE__ */ jsxs("div", { className: "rounded border border-line p-3", children: [
127
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-mono text-dim mb-2", children: media }),
128
+ /* @__PURE__ */ jsx(Openapischema, { schema: content.schema })
129
+ ] }, media)
130
+ ) })
98
131
  ] }),
99
- endpoint.responses.map((response) => /* @__PURE__ */ jsx(Response, { status: response.status, description: response.description, children: response.content && /* @__PURE__ */ jsx("div", { className: "space-y-3 mt-2", children: Object.entries(response.content).map(([media, content]) => /* @__PURE__ */ jsxs("div", { className: "rounded border border-line p-3", children: [
100
- /* @__PURE__ */ jsx("p", { className: "text-xs font-mono text-dim mb-2", children: media }),
101
- /* @__PURE__ */ jsx(Openapischema, { schema: content.schema })
102
- ] }, media)) }) }, `${endpoint.path}-${endpoint.method}-${response.status}`))
132
+ endpoint.responses.map((response) => /* @__PURE__ */ jsx(
133
+ Response,
134
+ {
135
+ status: response.status,
136
+ description: response.description,
137
+ children: response.content && /* @__PURE__ */ jsx("div", { className: "space-y-3 mt-2", children: Object.entries(response.content).map(([media, content]) => /* @__PURE__ */ jsxs("div", { className: "rounded border border-line p-3", children: [
138
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-mono text-dim mb-2", children: media }),
139
+ /* @__PURE__ */ jsx(Openapischema, { schema: content.schema })
140
+ ] }, media)) })
141
+ },
142
+ `${endpoint.path}-${endpoint.method}-${response.status}`
143
+ ))
103
144
  ]
104
145
  },
105
146
  `${endpoint.method}-${endpoint.path}`
106
147
  );
107
148
  }
108
- function OpenapiBase({ spec, tag, method, path, group = "none" }) {
149
+ function OpenapiBase({
150
+ spec,
151
+ tag,
152
+ method,
153
+ path,
154
+ group = "none"
155
+ }) {
109
156
  const parsed = useMemo(() => parsedspec(spec), [spec]);
110
157
  const endpoints = useMemo(() => {
111
- if (!parsed) return [];
158
+ if (!parsed) {
159
+ return [];
160
+ }
112
161
  let list2 = parsed.endpoints;
113
- if (tag) list2 = list2.filter((entry) => bytag(entry, tag));
114
- if (method) list2 = list2.filter((entry) => bymethod(entry, method));
115
- if (path) list2 = list2.filter((entry) => bypath(entry, path));
162
+ if (tag) {
163
+ list2 = list2.filter((entry) => bytag(entry, tag));
164
+ }
165
+ if (method) {
166
+ list2 = list2.filter((entry) => bymethod(entry, method));
167
+ }
168
+ if (path) {
169
+ list2 = list2.filter((entry) => bypath(entry, path));
170
+ }
116
171
  return sorted(list2);
117
172
  }, [parsed, tag, method, path]);
118
- if (!parsed) return /* @__PURE__ */ jsx("p", { className: "text-sm text-red-400", children: "invalid openapi specification" });
119
- if (endpoints.length === 0) return /* @__PURE__ */ jsx("p", { className: "text-sm text-muted", children: "no endpoints found" });
173
+ if (!parsed) {
174
+ return /* @__PURE__ */ jsx("p", { className: "text-sm text-red-400", children: "invalid openapi specification" });
175
+ }
176
+ if (endpoints.length === 0) {
177
+ return /* @__PURE__ */ jsx("p", { className: "text-sm text-muted", children: "no endpoints found" });
178
+ }
120
179
  const list = group === "tag" ? groups(endpoints) : [];
121
- const items = list.map(([name, value]) => ({ name, id: tagid(name), count: value.length }));
180
+ const items = list.map(([name, value]) => ({
181
+ count: value.length,
182
+ id: tagid(name),
183
+ name
184
+ }));
122
185
  return /* @__PURE__ */ jsxs("section", { className: "my-6", "aria-label": "openapi reference", children: [
123
186
  /* @__PURE__ */ jsxs("header", { className: "mb-4", children: [
124
187
  /* @__PURE__ */ jsx("h2", { className: "text-lg font-medium text-fg", children: parsed.info.title }),
@@ -131,10 +194,17 @@ function OpenapiBase({ spec, tag, method, path, group = "none" }) {
131
194
  group === "tag" ? /* @__PURE__ */ jsxs("div", { className: "space-y-8", children: [
132
195
  /* @__PURE__ */ jsx(OpenapiTags, { items }),
133
196
  list.map(([name, list2]) => /* @__PURE__ */ jsxs("section", { "aria-labelledby": tagid(name), children: [
134
- /* @__PURE__ */ jsxs("h3", { id: tagid(name), className: "mb-2 flex items-center gap-2 text-sm font-medium uppercase tracking-wide text-dim", children: [
135
- /* @__PURE__ */ jsx("span", { children: name }),
136
- /* @__PURE__ */ jsx("span", { className: "rounded border border-line px-1.5 py-0.5 text-[10px] font-mono normal-case", children: list2.length })
137
- ] }),
197
+ /* @__PURE__ */ jsxs(
198
+ "h3",
199
+ {
200
+ id: tagid(name),
201
+ className: "mb-2 flex items-center gap-2 text-sm font-medium uppercase tracking-wide text-dim",
202
+ children: [
203
+ /* @__PURE__ */ jsx("span", { children: name }),
204
+ /* @__PURE__ */ jsx("span", { className: "rounded border border-line px-1.5 py-0.5 text-[10px] font-mono normal-case", children: list2.length })
205
+ ]
206
+ }
207
+ ),
138
208
  /* @__PURE__ */ jsx("div", { children: list2.map(endpointview) })
139
209
  ] }, name))
140
210
  ] }) : /* @__PURE__ */ jsx("div", { children: endpoints.map(endpointview) })
@@ -7,7 +7,7 @@ interface OpenapischemaProps {
7
7
  name?: string;
8
8
  required?: boolean;
9
9
  }
10
- declare function OpenapischemaBase({ schema, name, required }: OpenapischemaProps): JSX.Element;
10
+ declare function OpenapischemaBase({ schema, name, required, }: OpenapischemaProps): JSX.Element;
11
11
  declare const Openapischema: react.MemoExoticComponent<typeof OpenapischemaBase>;
12
12
 
13
13
  export { Openapischema, type OpenapischemaProps };
@@ -2,20 +2,40 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { memo } from 'react';
3
3
 
4
4
  function scalar(value) {
5
- if (typeof value === "string") return value;
6
- if (typeof value === "number" || typeof value === "boolean") return String(value);
5
+ if (typeof value === "string") {
6
+ return value;
7
+ }
8
+ if (typeof value === "number" || typeof value === "boolean") {
9
+ return String(value);
10
+ }
7
11
  return JSON.stringify(value);
8
12
  }
9
13
  function typestring(schema) {
10
- if (!schema) return "unknown";
11
- if (schema.enum?.length) return schema.enum.join(" | ");
12
- if (schema.type === "array") return `${typestring(schema.items)}[]`;
13
- if (schema.oneOf?.length) return schema.oneOf.map((part) => typestring(part)).join(" | ");
14
- if (schema.anyOf?.length) return schema.anyOf.map((part) => typestring(part)).join(" | ");
15
- if (schema.allOf?.length) return schema.allOf.map((part) => typestring(part)).join(" & ");
14
+ if (!schema) {
15
+ return "unknown";
16
+ }
17
+ if (schema.enum?.length) {
18
+ return schema.enum.join(" | ");
19
+ }
20
+ if (schema.type === "array") {
21
+ return `${typestring(schema.items)}[]`;
22
+ }
23
+ if (schema.oneOf?.length) {
24
+ return schema.oneOf.map((part) => typestring(part)).join(" | ");
25
+ }
26
+ if (schema.anyOf?.length) {
27
+ return schema.anyOf.map((part) => typestring(part)).join(" | ");
28
+ }
29
+ if (schema.allOf?.length) {
30
+ return schema.allOf.map((part) => typestring(part)).join(" & ");
31
+ }
16
32
  return schema.type ?? "object";
17
33
  }
18
- function OpenapischemaBase({ schema, name, required }) {
34
+ function OpenapischemaBase({
35
+ schema,
36
+ name,
37
+ required
38
+ }) {
19
39
  if (!schema) {
20
40
  return /* @__PURE__ */ jsx("code", { className: "text-xs font-mono text-muted", children: "unknown" });
21
41
  }
@@ -1,8 +1,12 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { memo } from 'react';
3
3
 
4
- const OpenapiTagsBase = memo(function OpenapiTagsBase2({ items }) {
5
- if (items.length < 2) return null;
4
+ const OpenapiTagsBase = memo(function OpenapiTagsBase2({
5
+ items
6
+ }) {
7
+ if (items.length < 2) {
8
+ return null;
9
+ }
6
10
  return /* @__PURE__ */ jsx("nav", { "aria-label": "OpenAPI tags", className: "mb-4", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-wrap gap-2", role: "list", children: items.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
7
11
  "a",
8
12
  {
@@ -12,7 +12,9 @@ function PageTransitionBase({
12
12
  const [visible, setVisible] = useState(true);
13
13
  const prevRef = useRef(children);
14
14
  useEffect(() => {
15
- if (prevRef.current === children) return;
15
+ if (prevRef.current === children) {
16
+ return;
17
+ }
16
18
  prevRef.current = children;
17
19
  if (mode === "none") {
18
20
  setDisplayed(children);
@@ -26,9 +28,9 @@ function PageTransitionBase({
26
28
  return () => clearTimeout(timer);
27
29
  }, [children, duration, mode]);
28
30
  const style = mode === "none" ? {} : {
29
- transition: `opacity ${duration}ms ease, transform ${duration}ms ease`,
30
31
  opacity: visible ? 1 : 0,
31
- transform: mode === "slide" ? visible ? "translateY(0)" : "translateY(8px)" : void 0
32
+ transform: mode === "slide" ? visible ? "translateY(0)" : "translateY(8px)" : void 0,
33
+ transition: `opacity ${duration}ms ease, transform ${duration}ms ease`
32
34
  };
33
35
  return /* @__PURE__ */ jsx("div", { className, style, children: displayed });
34
36
  }