livemark 0.25.0 → 0.27.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 (427) hide show
  1. package/README.md +3 -2
  2. package/build/actions/config/define.d.ts +12 -0
  3. package/build/actions/config/define.unit.js +8 -1
  4. package/build/actions/escape/copy.d.ts +11 -0
  5. package/build/actions/escape/copy.js +29 -0
  6. package/build/actions/escape/copy.unit.d.ts +1 -0
  7. package/build/actions/escape/copy.unit.js +37 -0
  8. package/build/actions/escape/list.d.ts +12 -0
  9. package/build/actions/escape/list.js +27 -0
  10. package/build/actions/escape/list.unit.d.ts +1 -0
  11. package/build/actions/escape/list.unit.js +36 -0
  12. package/build/actions/target/build.d.ts +9 -26
  13. package/build/actions/target/build.js +50 -71
  14. package/build/actions/target/build.unit.d.ts +1 -0
  15. package/build/actions/target/build.unit.js +76 -0
  16. package/build/actions/target/clear.d.ts +4 -0
  17. package/build/actions/target/clear.js +14 -0
  18. package/build/actions/target/clear.unit.d.ts +1 -0
  19. package/build/actions/target/clear.unit.js +23 -0
  20. package/build/commands/build.js +1 -2
  21. package/build/commands/clear.d.ts +5 -0
  22. package/build/commands/clear.js +15 -0
  23. package/build/commands/escape.d.ts +4 -3
  24. package/build/commands/escape.js +45 -48
  25. package/build/commands/preview.js +1 -2
  26. package/build/commands/start.js +1 -2
  27. package/build/components/Abbr.d.ts +1 -1
  28. package/build/components/Abbr.js +2 -4
  29. package/build/components/AnsiCode.d.ts +1 -1
  30. package/build/components/AnsiCode.js +2 -2
  31. package/build/components/Article.d.ts +2 -1
  32. package/build/components/Article.js +7 -14
  33. package/build/components/BackToTop.d.ts +1 -1
  34. package/build/components/Banner.d.ts +2 -2
  35. package/build/components/Banner.js +7 -3
  36. package/build/components/BlogIndex.d.ts +1 -1
  37. package/build/components/BlogIndex.js +2 -11
  38. package/build/components/Breadcrumbs.d.ts +1 -1
  39. package/build/components/Breadcrumbs.js +2 -3
  40. package/build/components/Callout.d.ts +1 -1
  41. package/build/components/Callout.js +5 -9
  42. package/build/components/Card.d.ts +1 -1
  43. package/build/components/Card.js +2 -3
  44. package/build/components/Cards.d.ts +1 -1
  45. package/build/components/ChangelogIndex.d.ts +1 -1
  46. package/build/components/ChangelogIndex.js +2 -11
  47. package/build/components/ChoiceList.d.ts +15 -0
  48. package/build/components/ChoiceList.js +13 -0
  49. package/build/components/CodeBlock.d.ts +1 -1
  50. package/build/components/CodeBlock.js +3 -16
  51. package/build/components/CodeTabs.d.ts +1 -1
  52. package/build/components/CodeTabs.js +2 -3
  53. package/build/components/Column.d.ts +1 -1
  54. package/build/components/Columns.d.ts +1 -1
  55. package/build/components/Content.d.ts +1 -1
  56. package/build/components/ContentTab.d.ts +1 -1
  57. package/build/components/ContentTabs.d.ts +1 -1
  58. package/build/components/ContentTabs.js +2 -3
  59. package/build/components/DefaultCatchBoundary.d.ts +1 -1
  60. package/build/components/DefaultCatchBoundary.js +5 -7
  61. package/build/components/DefinitionList.d.ts +3 -3
  62. package/build/components/Details.d.ts +1 -1
  63. package/build/components/Details.js +2 -5
  64. package/build/components/FileTree.d.ts +1 -1
  65. package/build/components/FileTree.js +3 -5
  66. package/build/components/Footer.d.ts +1 -1
  67. package/build/components/Footer.js +2 -5
  68. package/build/components/FootnoteRef.d.ts +1 -1
  69. package/build/components/FootnoteRef.js +2 -4
  70. package/build/components/Header.d.ts +6 -0
  71. package/build/components/Header.js +26 -0
  72. package/build/components/HeaderMenu.d.ts +2 -0
  73. package/build/components/HeaderMenu.js +27 -0
  74. package/build/components/HeaderNav.d.ts +6 -0
  75. package/build/components/HeaderNav.js +74 -0
  76. package/build/components/HeaderSearch.d.ts +4 -0
  77. package/build/components/HeaderSearch.js +33 -0
  78. package/build/components/Heading.d.ts +6 -6
  79. package/build/components/InlineBadge.d.ts +2 -2
  80. package/build/components/InlineBadge.js +1 -1
  81. package/build/components/InlineIcon.d.ts +1 -1
  82. package/build/components/InlineToc.d.ts +1 -1
  83. package/build/components/InlineToc.js +2 -4
  84. package/build/components/Layout.d.ts +2 -1
  85. package/build/components/Layout.js +5 -58
  86. package/build/components/LinkButton.d.ts +2 -2
  87. package/build/components/LinkButton.js +1 -1
  88. package/build/components/MenuSheet.d.ts +22 -0
  89. package/build/components/MenuSheet.js +27 -0
  90. package/build/components/Mermaid.d.ts +1 -1
  91. package/build/components/MermaidRenderer.d.ts +1 -1
  92. package/build/components/MermaidRenderer.js +20 -8
  93. package/build/components/NotFound.d.ts +1 -1
  94. package/build/components/NotFound.js +3 -6
  95. package/build/components/PackageTabs.d.ts +1 -1
  96. package/build/components/PackageTabs.js +3 -7
  97. package/build/components/PageToolbar.d.ts +1 -1
  98. package/build/components/PageToolbar.js +2 -10
  99. package/build/components/PrevNext.d.ts +1 -1
  100. package/build/components/PrevNext.js +2 -10
  101. package/build/components/Root.d.ts +4 -0
  102. package/build/components/Root.js +8 -0
  103. package/build/components/Search.d.ts +5 -2
  104. package/build/components/Search.js +11 -9
  105. package/build/components/SearchDialog.d.ts +1 -1
  106. package/build/components/SearchDialog.js +10 -133
  107. package/build/components/Section.d.ts +1 -1
  108. package/build/components/SectionHeader.d.ts +1 -1
  109. package/build/components/SheetPanel.d.ts +12 -0
  110. package/build/components/SheetPanel.js +19 -0
  111. package/build/components/Sidebar.d.ts +1 -1
  112. package/build/components/Sidebar.js +12 -14
  113. package/build/components/SidebarArticles.d.ts +4 -1
  114. package/build/components/SidebarArticles.js +5 -9
  115. package/build/components/SidebarLinks.d.ts +4 -1
  116. package/build/components/SidebarLinks.js +6 -9
  117. package/build/components/SidebarPosts.d.ts +4 -1
  118. package/build/components/SidebarPosts.js +7 -23
  119. package/build/components/SidebarReleases.d.ts +4 -1
  120. package/build/components/SidebarReleases.js +5 -15
  121. package/build/components/SidebarSectionPicker.d.ts +8 -0
  122. package/build/components/SidebarSectionPicker.js +31 -0
  123. package/build/components/SidebarSections.d.ts +1 -1
  124. package/build/components/SidebarSections.js +5 -9
  125. package/build/components/SiteLink.d.ts +1 -1
  126. package/build/components/SiteTitle.d.ts +1 -1
  127. package/build/components/SiteTitle.js +2 -6
  128. package/build/components/SortableTable.d.ts +1 -1
  129. package/build/components/SoundCloud.d.ts +1 -1
  130. package/build/components/SoundCloud.js +2 -2
  131. package/build/components/TagIndex.d.ts +1 -1
  132. package/build/components/TagIndex.js +2 -11
  133. package/build/components/Theme.d.ts +2 -1
  134. package/build/components/Theme.js +35 -15
  135. package/build/components/Toc.d.ts +5 -4
  136. package/build/components/Toc.js +35 -35
  137. package/build/components/YouTube.d.ts +1 -1
  138. package/build/components/YouTube.js +2 -2
  139. package/build/components/ZoomImage.d.ts +1 -1
  140. package/build/content/article.js +4 -11
  141. package/build/content-collections.js +6 -4
  142. package/build/elements/accordion.d.ts +4 -4
  143. package/build/elements/accordion.js +2 -3
  144. package/build/elements/alert-dialog.d.ts +12 -12
  145. package/build/elements/alert-dialog.js +2 -4
  146. package/build/elements/alert.d.ts +4 -4
  147. package/build/elements/alert.js +2 -2
  148. package/build/elements/aspect-ratio.d.ts +1 -1
  149. package/build/elements/avatar.d.ts +6 -6
  150. package/build/elements/badge.d.ts +1 -1
  151. package/build/elements/badge.js +3 -1
  152. package/build/elements/breadcrumb.d.ts +6 -6
  153. package/build/elements/breadcrumb.js +2 -4
  154. package/build/elements/button-group.d.ts +2 -2
  155. package/build/elements/button-group.js +5 -5
  156. package/build/elements/button.d.ts +2 -2
  157. package/build/elements/button.js +9 -7
  158. package/build/elements/calendar.d.ts +2 -2
  159. package/build/elements/calendar.js +2 -2
  160. package/build/elements/card.d.ts +7 -7
  161. package/build/elements/card.js +4 -4
  162. package/build/elements/carousel.d.ts +5 -5
  163. package/build/elements/carousel.js +3 -7
  164. package/build/elements/chart.d.ts +6 -6
  165. package/build/elements/chart.js +5 -11
  166. package/build/elements/checkbox.d.ts +1 -1
  167. package/build/elements/collapsible.d.ts +3 -3
  168. package/build/elements/command.d.ts +9 -9
  169. package/build/elements/command.js +5 -11
  170. package/build/elements/context-menu.d.ts +15 -15
  171. package/build/elements/context-menu.js +6 -9
  172. package/build/elements/dialog.d.ts +10 -10
  173. package/build/elements/dialog.js +2 -6
  174. package/build/elements/drawer.d.ts +14 -12
  175. package/build/elements/drawer.js +14 -15
  176. package/build/elements/dropdown-menu.d.ts +15 -15
  177. package/build/elements/dropdown-menu.js +7 -10
  178. package/build/elements/empty.d.ts +6 -6
  179. package/build/elements/empty.js +2 -2
  180. package/build/elements/field.d.ts +10 -10
  181. package/build/elements/field.js +3 -4
  182. package/build/elements/hover-card.d.ts +3 -3
  183. package/build/elements/hover-card.js +2 -2
  184. package/build/elements/input-group.d.ts +7 -7
  185. package/build/elements/input-group.js +5 -5
  186. package/build/elements/input-otp.d.ts +4 -4
  187. package/build/elements/input.d.ts +1 -1
  188. package/build/elements/input.js +2 -2
  189. package/build/elements/item.d.ts +9 -9
  190. package/build/elements/item.js +2 -2
  191. package/build/elements/kbd.d.ts +2 -2
  192. package/build/elements/label.d.ts +1 -1
  193. package/build/elements/menubar.d.ts +16 -16
  194. package/build/elements/menubar.js +9 -11
  195. package/build/elements/native-select.d.ts +3 -3
  196. package/build/elements/native-select.js +2 -4
  197. package/build/elements/navigation-menu.d.ts +8 -8
  198. package/build/elements/navigation-menu.js +3 -5
  199. package/build/elements/pagination.d.ts +7 -7
  200. package/build/elements/pagination.js +4 -10
  201. package/build/elements/popover.d.ts +6 -6
  202. package/build/elements/popover.js +2 -2
  203. package/build/elements/progress.d.ts +5 -5
  204. package/build/elements/progress.js +2 -3
  205. package/build/elements/radio-group.d.ts +2 -2
  206. package/build/elements/resizable.d.ts +3 -3
  207. package/build/elements/scroll-area.d.ts +2 -2
  208. package/build/elements/scroll-area.js +2 -4
  209. package/build/elements/select.d.ts +9 -9
  210. package/build/elements/select.js +4 -9
  211. package/build/elements/separator.d.ts +1 -1
  212. package/build/elements/sheet.d.ts +8 -8
  213. package/build/elements/sheet.js +2 -6
  214. package/build/elements/sidebar.d.ts +19 -19
  215. package/build/elements/sidebar.js +15 -37
  216. package/build/elements/skeleton.d.ts +1 -1
  217. package/build/elements/slider.d.ts +2 -1
  218. package/build/elements/slider.js +2 -3
  219. package/build/elements/sonner.d.ts +1 -1
  220. package/build/elements/spinner.d.ts +1 -1
  221. package/build/elements/switch.d.ts +1 -1
  222. package/build/elements/table.d.ts +8 -8
  223. package/build/elements/tabs.d.ts +4 -4
  224. package/build/elements/tabs.js +3 -3
  225. package/build/elements/textarea.d.ts +1 -1
  226. package/build/elements/textarea.js +2 -2
  227. package/build/elements/toggle-group.d.ts +3 -2
  228. package/build/elements/toggle-group.js +3 -3
  229. package/build/elements/toggle.d.ts +1 -1
  230. package/build/elements/toggle.js +2 -2
  231. package/build/elements/tooltip.d.ts +4 -4
  232. package/build/elements/tooltip.js +2 -3
  233. package/build/head.d.ts +4 -0
  234. package/build/head.js +6 -0
  235. package/build/helpers/agent-skills.d.ts +22 -0
  236. package/build/helpers/agent-skills.js +46 -0
  237. package/build/helpers/agent-skills.unit.d.ts +1 -0
  238. package/build/helpers/agent-skills.unit.js +49 -0
  239. package/build/helpers/article-search.d.ts +19 -0
  240. package/build/helpers/article-search.js +134 -0
  241. package/build/helpers/article.d.ts +13 -0
  242. package/build/helpers/article.js +17 -1
  243. package/build/helpers/dependency-dir.d.ts +5 -0
  244. package/build/helpers/dependency-dir.js +20 -0
  245. package/build/helpers/dependency-dir.unit.d.ts +1 -0
  246. package/build/helpers/dependency-dir.unit.js +25 -0
  247. package/build/helpers/dynamic-icon-resolver.d.ts +1 -1
  248. package/build/helpers/dynamic-icon.d.ts +1 -1
  249. package/build/helpers/head.d.ts +58 -0
  250. package/build/helpers/head.js +80 -0
  251. package/build/helpers/head.unit.d.ts +1 -0
  252. package/build/helpers/head.unit.js +110 -0
  253. package/build/helpers/llms.d.ts +33 -0
  254. package/build/helpers/llms.js +72 -0
  255. package/build/helpers/llms.unit.d.ts +1 -0
  256. package/build/helpers/llms.unit.js +98 -0
  257. package/build/helpers/nav-items.d.ts +11 -0
  258. package/build/helpers/nav-items.js +65 -0
  259. package/build/helpers/render-inline-markdown.d.ts +1 -0
  260. package/build/helpers/render-inline-markdown.js +34 -0
  261. package/build/helpers/render-inline-markdown.unit.d.ts +1 -0
  262. package/build/helpers/render-inline-markdown.unit.js +20 -0
  263. package/build/helpers/search-highlight.d.ts +8 -0
  264. package/build/helpers/search-highlight.js +59 -0
  265. package/build/helpers/search-highlight.unit.d.ts +1 -0
  266. package/build/helpers/search-highlight.unit.js +36 -0
  267. package/build/helpers/target-export.d.ts +9 -0
  268. package/build/helpers/target-export.js +24 -0
  269. package/build/helpers/target-export.unit.d.ts +1 -0
  270. package/build/helpers/target-export.unit.js +25 -0
  271. package/build/helpers/theme.d.ts +6 -2
  272. package/build/helpers/theme.js +40 -7
  273. package/build/helpers/theme.unit.d.ts +1 -0
  274. package/build/helpers/theme.unit.js +30 -0
  275. package/build/hooks/hydrated.d.ts +2 -0
  276. package/build/hooks/hydrated.js +15 -0
  277. package/build/index.d.ts +1 -0
  278. package/build/index.js +1 -1
  279. package/build/models/config.d.ts +52 -6
  280. package/build/models/config.js +17 -1
  281. package/build/models/section.d.ts +4 -2
  282. package/build/models/section.js +1 -1
  283. package/build/plugins/vite-agents.d.ts +17 -0
  284. package/build/plugins/vite-agents.js +109 -0
  285. package/build/plugins/vite-agents.unit.d.ts +1 -0
  286. package/build/plugins/vite-agents.unit.js +20 -0
  287. package/build/plugins/vite-livemark.d.ts +4 -5
  288. package/build/plugins/vite-livemark.js +56 -90
  289. package/build/plugins/vite-robots.d.ts +4 -2
  290. package/build/plugins/vite-robots.js +15 -2
  291. package/build/plugins/vite-robots.unit.js +5 -1
  292. package/build/program.js +4 -2
  293. package/build/routes/$.d.ts +4 -1
  294. package/build/routes/$.js +20 -9
  295. package/build/routes/__root.js +29 -63
  296. package/build/settings.js +2 -1
  297. package/build/vite.config.js +3 -1
  298. package/package.json +69 -66
  299. package/{.agents/skills → skills}/livemark-authoring/SKILL.md +2 -2
  300. package/{.agents/skills → skills}/livemark-configuration/SKILL.md +16 -5
  301. package/skills/livemark-customization/SKILL.md +146 -0
  302. package/source/actions/config/define.unit.ts +9 -0
  303. package/source/actions/escape/copy.ts +35 -0
  304. package/source/actions/escape/copy.unit.ts +51 -0
  305. package/source/actions/escape/list.ts +30 -0
  306. package/source/actions/escape/list.unit.ts +42 -0
  307. package/source/actions/target/build.ts +49 -69
  308. package/source/actions/target/build.unit.ts +95 -0
  309. package/source/actions/target/clear.ts +14 -0
  310. package/source/actions/target/clear.unit.ts +25 -0
  311. package/source/commands/build.ts +0 -1
  312. package/source/commands/clear.ts +15 -0
  313. package/source/commands/escape.ts +42 -59
  314. package/source/commands/preview.ts +0 -1
  315. package/source/commands/start.ts +0 -1
  316. package/source/components/AnsiCode.tsx +1 -1
  317. package/source/components/Article.tsx +8 -4
  318. package/source/components/Banner.tsx +12 -2
  319. package/source/components/BlogIndex.tsx +1 -1
  320. package/source/components/Callout.tsx +4 -6
  321. package/source/components/ChangelogIndex.tsx +1 -1
  322. package/source/components/ChoiceList.tsx +69 -0
  323. package/source/components/CodeBlock.tsx +6 -6
  324. package/source/components/CodeTabs.tsx +1 -1
  325. package/source/components/ContentTabs.tsx +1 -1
  326. package/source/components/DefaultCatchBoundary.tsx +4 -6
  327. package/source/components/Details.tsx +1 -1
  328. package/source/components/FileTree.tsx +1 -1
  329. package/source/components/Header.tsx +52 -0
  330. package/source/components/HeaderMenu.tsx +41 -0
  331. package/source/components/HeaderNav.tsx +145 -0
  332. package/source/components/HeaderSearch.tsx +77 -0
  333. package/source/components/InlineBadge.tsx +1 -1
  334. package/source/components/InlineToc.tsx +1 -1
  335. package/source/components/Layout.tsx +16 -160
  336. package/source/components/LinkButton.tsx +9 -1
  337. package/source/components/MenuSheet.tsx +92 -0
  338. package/source/components/MermaidRenderer.tsx +19 -8
  339. package/source/components/NotFound.tsx +3 -5
  340. package/source/components/PackageTabs.tsx +2 -2
  341. package/source/components/PageToolbar.tsx +11 -3
  342. package/source/components/PrevNext.tsx +2 -2
  343. package/source/components/Root.tsx +13 -0
  344. package/source/components/Search.tsx +28 -8
  345. package/source/components/SearchDialog.tsx +15 -189
  346. package/source/components/SheetPanel.tsx +69 -0
  347. package/source/components/Sidebar.tsx +27 -14
  348. package/source/components/SidebarArticles.tsx +4 -3
  349. package/source/components/SidebarLinks.tsx +3 -2
  350. package/source/components/SidebarPosts.tsx +3 -2
  351. package/source/components/SidebarReleases.tsx +3 -2
  352. package/source/components/SidebarSectionPicker.tsx +70 -0
  353. package/source/components/SiteTitle.tsx +5 -5
  354. package/source/components/SoundCloud.tsx +1 -1
  355. package/source/components/TagIndex.tsx +1 -1
  356. package/source/components/Theme.tsx +55 -29
  357. package/source/components/Toc.tsx +76 -55
  358. package/source/components/YouTube.tsx +1 -1
  359. package/source/content/article.ts +8 -13
  360. package/source/content-collections.ts +5 -4
  361. package/source/elements/alert-dialog.tsx +1 -1
  362. package/source/elements/alert.tsx +1 -1
  363. package/source/elements/badge.tsx +4 -0
  364. package/source/elements/button-group.tsx +4 -4
  365. package/source/elements/button.tsx +10 -6
  366. package/source/elements/calendar.tsx +1 -1
  367. package/source/elements/card.tsx +3 -3
  368. package/source/elements/command.tsx +7 -4
  369. package/source/elements/context-menu.tsx +5 -5
  370. package/source/elements/dialog.tsx +1 -1
  371. package/source/elements/drawer.tsx +59 -43
  372. package/source/elements/dropdown-menu.tsx +6 -6
  373. package/source/elements/empty.tsx +1 -1
  374. package/source/elements/field.tsx +1 -1
  375. package/source/elements/hover-card.tsx +1 -1
  376. package/source/elements/input-group.tsx +4 -4
  377. package/source/elements/input.tsx +1 -1
  378. package/source/elements/item.tsx +1 -1
  379. package/source/elements/menubar.tsx +8 -8
  380. package/source/elements/native-select.tsx +1 -1
  381. package/source/elements/popover.tsx +1 -1
  382. package/source/elements/select.tsx +3 -3
  383. package/source/elements/sidebar.tsx +8 -21
  384. package/source/elements/tabs.tsx +2 -2
  385. package/source/elements/textarea.tsx +1 -1
  386. package/source/elements/toggle-group.tsx +2 -2
  387. package/source/elements/toggle.tsx +1 -1
  388. package/source/env.d.ts +1 -0
  389. package/source/head.ts +7 -0
  390. package/source/helpers/agent-skills.ts +59 -0
  391. package/source/helpers/agent-skills.unit.ts +56 -0
  392. package/source/helpers/article-search.tsx +192 -0
  393. package/source/helpers/article.ts +17 -0
  394. package/source/helpers/dependency-dir.ts +20 -0
  395. package/source/helpers/dependency-dir.unit.ts +39 -0
  396. package/source/helpers/head.ts +105 -0
  397. package/source/helpers/head.unit.ts +118 -0
  398. package/source/helpers/llms.ts +109 -0
  399. package/source/helpers/llms.unit.ts +115 -0
  400. package/source/helpers/nav-items.tsx +102 -0
  401. package/source/helpers/render-inline-markdown.ts +44 -0
  402. package/source/helpers/render-inline-markdown.unit.ts +30 -0
  403. package/source/helpers/search-highlight.ts +73 -0
  404. package/source/helpers/search-highlight.unit.ts +42 -0
  405. package/source/helpers/target-export.ts +28 -0
  406. package/source/helpers/target-export.unit.ts +37 -0
  407. package/source/helpers/theme.ts +40 -6
  408. package/source/helpers/theme.unit.ts +32 -0
  409. package/source/hooks/hydrated.ts +18 -0
  410. package/source/index.ts +1 -0
  411. package/source/models/config.ts +24 -0
  412. package/source/models/section.ts +3 -0
  413. package/source/plugins/vite-agents.ts +135 -0
  414. package/source/plugins/vite-agents.unit.ts +26 -0
  415. package/source/plugins/vite-livemark.ts +54 -95
  416. package/source/plugins/vite-robots.ts +18 -3
  417. package/source/plugins/vite-robots.unit.ts +7 -0
  418. package/source/program.ts +2 -0
  419. package/source/routes/$.tsx +27 -9
  420. package/source/routes/__root.tsx +51 -71
  421. package/source/settings.ts +1 -0
  422. package/source/styles/general.css +59 -11
  423. package/source/styles/markdown.css +13 -7
  424. package/source/styles/shape.css +14 -0
  425. package/source/vite.config.ts +2 -0
  426. package/.agents/skills/change-review/SKILL.md +0 -47
  427. package/.agents/skills/livemark-customization/SKILL.md +0 -118
@@ -3,15 +3,13 @@ import { File, Folder } from "lucide-react";
3
3
  /** Renders a file/directory tree from a JSON-serialized tree structure */
4
4
  export function FileTree(props) {
5
5
  const items = JSON.parse(props.tree);
6
- return (_jsx("div", { className: "not-prose my-4 rounded-xl border border-border bg-card p-4 font-mono text-sm", children: _jsx(TreeItems, { items: items, depth: 0 }) }));
6
+ return (_jsx("div", { className: "not-prose my-4 rounded-card border border-border bg-card p-4 font-mono text-sm", children: _jsx(TreeItems, { items: items, depth: 0 }) }));
7
7
  }
8
8
  function TreeItems(props) {
9
9
  return (_jsx("ul", { className: props.depth > 0 ? "ml-4 border-l border-border pl-2" : "", children: props.items.map((item, index) => (_jsx(TreeNode, { item: item, depth: props.depth }, `${item.name}-${index}`))) }));
10
10
  }
11
11
  function TreeNode(props) {
12
12
  const { item, depth } = props;
13
- return (_jsxs("li", { className: "py-0.5", children: [
14
- _jsxs("span", { className: "inline-flex items-center gap-2", children: [item.isDir ? (_jsx(Folder, { className: "size-4 shrink-0 text-primary" })) : (_jsx(File, { className: "size-4 shrink-0 text-muted-foreground" })), _jsx("span", { className: item.isDir ? "font-semibold" : "", children: item.name })
15
- ] }), item.children && item.children.length > 0 && (_jsx(TreeItems, { items: item.children, depth: depth + 1 }))] }));
13
+ return (_jsxs("li", { className: "py-0.5", children: [_jsxs("span", { className: "inline-flex items-center gap-2", children: [item.isDir ? (_jsx(Folder, { className: "size-4 shrink-0 text-primary" })) : (_jsx(File, { className: "size-4 shrink-0 text-muted-foreground" })), _jsx("span", { className: item.isDir ? "font-semibold" : "", children: item.name })] }), item.children && item.children.length > 0 && (_jsx(TreeItems, { items: item.children, depth: depth + 1 }))] }));
16
14
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9GaWxlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBUTNDLDBFQUEwRTtBQUMxRSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXVCO0lBQzlDLE1BQU0sS0FBSyxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWhELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyw4RUFBOEUsWUFDM0YsS0FBQyxTQUFTLElBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFJLEdBQ2pDLENBQ1AsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUEyQztJQUM1RCxPQUFPLENBQ0wsYUFBSSxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQ3JFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDaEMsS0FBQyxRQUFRLElBQStCLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQXZELEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBb0MsQ0FDM0UsQ0FBQyxHQUNDLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxLQUF3QztJQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU3QixPQUFPLENBQ0wsY0FBSSxTQUFTLEVBQUMsUUFBUTtZQUNwQixnQkFBTSxTQUFTLEVBQUMsZ0NBQWdDLGFBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1osS0FBQyxNQUFNLElBQUMsU0FBUyxFQUFDLDhCQUE4QixHQUFHLENBQ3BELENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLHVDQUF1QyxHQUFHLENBQzNELEVBQ0QsZUFBTSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQUcsSUFBSSxDQUFDLElBQUksR0FBUTtvQkFDakUsRUFDTixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUM1QyxLQUFDLFNBQVMsSUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBSSxDQUN0RCxJQUNFLENBQ04sQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlLCBGb2xkZXIgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcblxuaW50ZXJmYWNlIFRyZWVJdGVtIHtcbiAgbmFtZTogc3RyaW5nXG4gIGlzRGlyOiBib29sZWFuXG4gIGNoaWxkcmVuPzogVHJlZUl0ZW1bXVxufVxuXG4vKiogUmVuZGVycyBhIGZpbGUvZGlyZWN0b3J5IHRyZWUgZnJvbSBhIEpTT04tc2VyaWFsaXplZCB0cmVlIHN0cnVjdHVyZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIEZpbGVUcmVlKHByb3BzOiB7IHRyZWU6IHN0cmluZyB9KSB7XG4gIGNvbnN0IGl0ZW1zOiBUcmVlSXRlbVtdID0gSlNPTi5wYXJzZShwcm9wcy50cmVlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJub3QtcHJvc2UgbXktNCByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWNhcmQgcC00IGZvbnQtbW9ubyB0ZXh0LXNtXCI+XG4gICAgICA8VHJlZUl0ZW1zIGl0ZW1zPXtpdGVtc30gZGVwdGg9ezB9IC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZnVuY3Rpb24gVHJlZUl0ZW1zKHByb3BzOiB7IGl0ZW1zOiBUcmVlSXRlbVtdOyBkZXB0aDogbnVtYmVyIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8dWwgY2xhc3NOYW1lPXtwcm9wcy5kZXB0aCA+IDAgPyBcIm1sLTQgYm9yZGVyLWwgYm9yZGVyLWJvcmRlciBwbC0yXCIgOiBcIlwifT5cbiAgICAgIHtwcm9wcy5pdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgIDxUcmVlTm9kZSBrZXk9e2Ake2l0ZW0ubmFtZX0tJHtpbmRleH1gfSBpdGVtPXtpdGVtfSBkZXB0aD17cHJvcHMuZGVwdGh9IC8+XG4gICAgICApKX1cbiAgICA8L3VsPlxuICApXG59XG5cbmZ1bmN0aW9uIFRyZWVOb2RlKHByb3BzOiB7IGl0ZW06IFRyZWVJdGVtOyBkZXB0aDogbnVtYmVyIH0pIHtcbiAgY29uc3QgeyBpdGVtLCBkZXB0aCB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxsaSBjbGFzc05hbWU9XCJweS0wLjVcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICB7aXRlbS5pc0RpciA/IChcbiAgICAgICAgICA8Rm9sZGVyIGNsYXNzTmFtZT1cInNpemUtNCBzaHJpbmstMCB0ZXh0LXByaW1hcnlcIiAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxGaWxlIGNsYXNzTmFtZT1cInNpemUtNCBzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiAvPlxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2l0ZW0uaXNEaXIgPyBcImZvbnQtc2VtaWJvbGRcIiA6IFwiXCJ9PntpdGVtLm5hbWV9PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAge2l0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPFRyZWVJdGVtcyBpdGVtcz17aXRlbS5jaGlsZHJlbn0gZGVwdGg9e2RlcHRoICsgMX0gLz5cbiAgICAgICl9XG4gICAgPC9saT5cbiAgKVxufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9GaWxlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBUTNDLDBFQUEwRTtBQUMxRSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXVCO0lBQzlDLE1BQU0sS0FBSyxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWhELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyxnRkFBZ0YsWUFDN0YsS0FBQyxTQUFTLElBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFJLEdBQ2pDLENBQ1AsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUEyQztJQUM1RCxPQUFPLENBQ0wsYUFBSSxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQ3JFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDaEMsS0FBQyxRQUFRLElBQStCLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQXZELEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBb0MsQ0FDM0UsQ0FBQyxHQUNDLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxLQUF3QztJQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU3QixPQUFPLENBQ0wsY0FBSSxTQUFTLEVBQUMsUUFBUSxhQUNwQixnQkFBTSxTQUFTLEVBQUMsZ0NBQWdDLGFBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1osS0FBQyxNQUFNLElBQUMsU0FBUyxFQUFDLDhCQUE4QixHQUFHLENBQ3BELENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLHVDQUF1QyxHQUFHLENBQzNELEVBQ0QsZUFBTSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQUcsSUFBSSxDQUFDLElBQUksR0FBUSxJQUNqRSxFQUNOLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQzVDLEtBQUMsU0FBUyxJQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFJLENBQ3RELElBQ0UsQ0FDTixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGUsIEZvbGRlciB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuXG5pbnRlcmZhY2UgVHJlZUl0ZW0ge1xuICBuYW1lOiBzdHJpbmdcbiAgaXNEaXI6IGJvb2xlYW5cbiAgY2hpbGRyZW4/OiBUcmVlSXRlbVtdXG59XG5cbi8qKiBSZW5kZXJzIGEgZmlsZS9kaXJlY3RvcnkgdHJlZSBmcm9tIGEgSlNPTi1zZXJpYWxpemVkIHRyZWUgc3RydWN0dXJlICovXG5leHBvcnQgZnVuY3Rpb24gRmlsZVRyZWUocHJvcHM6IHsgdHJlZTogc3RyaW5nIH0pIHtcbiAgY29uc3QgaXRlbXM6IFRyZWVJdGVtW10gPSBKU09OLnBhcnNlKHByb3BzLnRyZWUpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS00IHJvdW5kZWQtY2FyZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1jYXJkIHAtNCBmb250LW1vbm8gdGV4dC1zbVwiPlxuICAgICAgPFRyZWVJdGVtcyBpdGVtcz17aXRlbXN9IGRlcHRoPXswfSAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmZ1bmN0aW9uIFRyZWVJdGVtcyhwcm9wczogeyBpdGVtczogVHJlZUl0ZW1bXTsgZGVwdGg6IG51bWJlciB9KSB7XG4gIHJldHVybiAoXG4gICAgPHVsIGNsYXNzTmFtZT17cHJvcHMuZGVwdGggPiAwID8gXCJtbC00IGJvcmRlci1sIGJvcmRlci1ib3JkZXIgcGwtMlwiIDogXCJcIn0+XG4gICAgICB7cHJvcHMuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICA8VHJlZU5vZGUga2V5PXtgJHtpdGVtLm5hbWV9LSR7aW5kZXh9YH0gaXRlbT17aXRlbX0gZGVwdGg9e3Byb3BzLmRlcHRofSAvPlxuICAgICAgKSl9XG4gICAgPC91bD5cbiAgKVxufVxuXG5mdW5jdGlvbiBUcmVlTm9kZShwcm9wczogeyBpdGVtOiBUcmVlSXRlbTsgZGVwdGg6IG51bWJlciB9KSB7XG4gIGNvbnN0IHsgaXRlbSwgZGVwdGggfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPVwicHktMC41XCI+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAge2l0ZW0uaXNEaXIgPyAoXG4gICAgICAgICAgPEZvbGRlciBjbGFzc05hbWU9XCJzaXplLTQgc2hyaW5rLTAgdGV4dC1wcmltYXJ5XCIgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RmlsZSBjbGFzc05hbWU9XCJzaXplLTQgc2hyaW5rLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtpdGVtLmlzRGlyID8gXCJmb250LXNlbWlib2xkXCIgOiBcIlwifT57aXRlbS5uYW1lfTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIHtpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxUcmVlSXRlbXMgaXRlbXM9e2l0ZW0uY2hpbGRyZW59IGRlcHRoPXtkZXB0aCArIDF9IC8+XG4gICAgICApfVxuICAgIDwvbGk+XG4gIClcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  /** Footer shown below article content */
2
- export declare function Footer(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Footer(): import("react").JSX.Element;
@@ -1,9 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /** Footer shown below article content */
3
3
  export function Footer() {
4
- return (_jsxs("p", { className: "mt-12 text-center text-sm text-muted-foreground", children: ["Created with ",
5
- _jsx("span", { className: "text-red-500", children: "\u2764" }),
6
- " and", " ", _jsx("a", { href: "https://livemark.dev", target: "_blank", rel: "noopener noreferrer", className: "font-medium hover:text-foreground transition-colors", children: "Livemark" })
7
- ] }));
4
+ return (_jsxs("p", { className: "mt-12 text-center text-sm text-muted-foreground", children: ["Created with ", _jsx("span", { className: "text-red-500", children: "\u2764" }), " and", " ", _jsx("a", { href: "https://livemark.dev", target: "_blank", rel: "noopener noreferrer", className: "font-medium hover:text-foreground transition-colors", children: "Livemark" })] }));
8
5
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sQ0FDTCxhQUFHLFNBQVMsRUFBQyxpREFBaUQ7WUFDL0MsZUFBTSxTQUFTLEVBQUMsY0FBYyx1QkFBUztvQkFBSyxHQUFHLEVBQzVELFlBQ0UsSUFBSSxFQUFDLHNCQUFzQixFQUMzQixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsU0FBUyxFQUFDLHFEQUFxRCx5QkFHN0Q7WUFDRixDQUNMLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEZvb3RlciBzaG93biBiZWxvdyBhcnRpY2xlIGNvbnRlbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gIHJldHVybiAoXG4gICAgPHAgY2xhc3NOYW1lPVwibXQtMTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIENyZWF0ZWQgd2l0aCA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIj7inaQ8L3NwYW4+IGFuZHtcIiBcIn1cbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCJodHRwczovL2xpdmVtYXJrLmRldlwiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBjbGFzc05hbWU9XCJmb250LW1lZGl1bSBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgPlxuICAgICAgICBMaXZlbWFya1xuICAgICAgPC9hPlxuICAgIDwvcD5cbiAgKVxufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sQ0FDTCxhQUFHLFNBQVMsRUFBQyxpREFBaUQsOEJBQy9DLGVBQU0sU0FBUyxFQUFDLGNBQWMsdUJBQVMsVUFBSyxHQUFHLEVBQzVELFlBQ0UsSUFBSSxFQUFDLHNCQUFzQixFQUMzQixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsU0FBUyxFQUFDLHFEQUFxRCx5QkFHN0QsSUFDRixDQUNMLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEZvb3RlciBzaG93biBiZWxvdyBhcnRpY2xlIGNvbnRlbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gIHJldHVybiAoXG4gICAgPHAgY2xhc3NOYW1lPVwibXQtMTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIENyZWF0ZWQgd2l0aCA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIj7inaQ8L3NwYW4+IGFuZHtcIiBcIn1cbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCJodHRwczovL2xpdmVtYXJrLmRldlwiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBjbGFzc05hbWU9XCJmb250LW1lZGl1bSBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgPlxuICAgICAgICBMaXZlbWFya1xuICAgICAgPC9hPlxuICAgIDwvcD5cbiAgKVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { type ComponentProps } from "react";
2
2
  /** Wraps footnote reference links in a HoverCard that previews footnote content inline */
3
- export declare function FootnoteRef(props: ComponentProps<"a">): import("react/jsx-runtime").JSX.Element;
3
+ export declare function FootnoteRef(props: ComponentProps<"a">): import("react").JSX.Element;
@@ -24,8 +24,6 @@ function FootnoteHoverCard(props) {
24
24
  }
25
25
  setFootnoteHtml(wrapper.innerHTML);
26
26
  }, [props.href]);
27
- return (_jsxs(HoverCard, { children: [
28
- _jsx(HoverCardTrigger, { render: _jsx("a", { ...props }) }), _jsx(HoverCardContent, { className: "prose dark:prose-invert text-sm w-80 [&>p]:my-1 [&>p:first-child]:mt-0 [&>p:last-child]:mb-0", side: "top", sideOffset: 8, children: footnoteHtml ? (_jsx("div", { dangerouslySetInnerHTML: { __html: footnoteHtml } })) : (_jsx("p", { className: "text-muted-foreground", children: "Footnote not found" })) })
29
- ] }));
27
+ return (_jsxs(HoverCard, { children: [_jsx(HoverCardTrigger, { render: _jsx("a", { ...props }) }), _jsx(HoverCardContent, { className: "prose dark:prose-invert text-sm w-80 [&>p]:my-1 [&>p:first-child]:mt-0 [&>p:last-child]:mb-0", side: "top", sideOffset: 8, children: footnoteHtml ? (_jsx("div", { dangerouslySetInnerHTML: { __html: footnoteHtml } })) : (_jsx("p", { className: "text-muted-foreground", children: "Footnote not found" })) })] }));
30
28
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdG5vdGVSZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9Gb290bm90ZVJlZi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTRCLENBQUE7QUFFMUYsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUE7QUFFM0MsMEZBQTBGO0FBQzFGLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBMEI7SUFDcEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7SUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLGVBQU8sS0FBSyxHQUFJLENBQUE7SUFDekIsQ0FBQztJQUVELE9BQU8sS0FBQyxpQkFBaUIsT0FBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFBO0FBQ3JELENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQTZDO0lBQ3RFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXBELFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzVDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTTtRQUVmLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBO1FBQ2hDLEtBQUssTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztZQUMxRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEIsQ0FBQztRQUNELGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFaEIsT0FBTyxDQUNMLE1BQUMsU0FBUztZQUNSLEtBQUMsZ0JBQWdCLElBQUMsTUFBTSxFQUFFLGVBQU8sS0FBSyxHQUFJLEdBQUksRUFDOUMsS0FBQyxnQkFBZ0IsSUFDZixTQUFTLEVBQUMsOEZBQThGLEVBQ3hHLElBQUksRUFBQyxLQUFLLEVBQ1YsVUFBVSxFQUFFLENBQUMsWUFFWixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ2QsY0FBSyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBSSxDQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUNGLFlBQUcsU0FBUyxFQUFDLHVCQUF1QixtQ0FBdUIsQ0FDNUQsR0FDZ0I7WUFDVCxDQUNiLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb21wb25lbnRQcm9wcywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBIb3ZlckNhcmQsIEhvdmVyQ2FyZENvbnRlbnQsIEhvdmVyQ2FyZFRyaWdnZXIgfSBmcm9tIFwiLi4vZWxlbWVudHMvaG92ZXItY2FyZC50c3hcIlxuXG5jb25zdCBGT09UTk9URV9QUkVGSVggPSBcIiN1c2VyLWNvbnRlbnQtZm4tXCJcblxuLyoqIFdyYXBzIGZvb3Rub3RlIHJlZmVyZW5jZSBsaW5rcyBpbiBhIEhvdmVyQ2FyZCB0aGF0IHByZXZpZXdzIGZvb3Rub3RlIGNvbnRlbnQgaW5saW5lICovXG5leHBvcnQgZnVuY3Rpb24gRm9vdG5vdGVSZWYocHJvcHM6IENvbXBvbmVudFByb3BzPFwiYVwiPikge1xuICBjb25zdCBocmVmID0gcHJvcHMuaHJlZiA/PyBcIlwiXG4gIGlmICghaHJlZi5zdGFydHNXaXRoKEZPT1ROT1RFX1BSRUZJWCkpIHtcbiAgICByZXR1cm4gPGEgey4uLnByb3BzfSAvPlxuICB9XG5cbiAgcmV0dXJuIDxGb290bm90ZUhvdmVyQ2FyZCB7Li4ucHJvcHN9IGhyZWY9e2hyZWZ9IC8+XG59XG5cbmZ1bmN0aW9uIEZvb3Rub3RlSG92ZXJDYXJkKHByb3BzOiBDb21wb25lbnRQcm9wczxcImFcIj4gJiB7IGhyZWY6IHN0cmluZyB9KSB7XG4gIGNvbnN0IFtmb290bm90ZUh0bWwsIHNldEZvb3Rub3RlSHRtbF0gPSB1c2VTdGF0ZShcIlwiKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBwcm9wcy5ocmVmLnNsaWNlKDEpXG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXRJZClcbiAgICBpZiAoIWVsKSByZXR1cm5cblxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgd3JhcHBlci5pbm5lckhUTUwgPSBlbC5pbm5lckhUTUxcbiAgICBmb3IgKGNvbnN0IGJhY2tyZWYgb2Ygd3JhcHBlci5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtZm9vdG5vdGUtYmFja3JlZl1cIikpIHtcbiAgICAgIGJhY2tyZWYucmVtb3ZlKClcbiAgICB9XG4gICAgc2V0Rm9vdG5vdGVIdG1sKHdyYXBwZXIuaW5uZXJIVE1MKVxuICB9LCBbcHJvcHMuaHJlZl0pXG5cbiAgcmV0dXJuIChcbiAgICA8SG92ZXJDYXJkPlxuICAgICAgPEhvdmVyQ2FyZFRyaWdnZXIgcmVuZGVyPXs8YSB7Li4ucHJvcHN9IC8+fSAvPlxuICAgICAgPEhvdmVyQ2FyZENvbnRlbnRcbiAgICAgICAgY2xhc3NOYW1lPVwicHJvc2UgZGFyazpwcm9zZS1pbnZlcnQgdGV4dC1zbSB3LTgwIFsmPnBdOm15LTEgWyY+cDpmaXJzdC1jaGlsZF06bXQtMCBbJj5wOmxhc3QtY2hpbGRdOm1iLTBcIlxuICAgICAgICBzaWRlPVwidG9wXCJcbiAgICAgICAgc2lkZU9mZnNldD17OH1cbiAgICAgID5cbiAgICAgICAge2Zvb3Rub3RlSHRtbCA/IChcbiAgICAgICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogZm9vdG5vdGVIdG1sIH19IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+Rm9vdG5vdGUgbm90IGZvdW5kPC9wPlxuICAgICAgICApfVxuICAgICAgPC9Ib3ZlckNhcmRDb250ZW50PlxuICAgIDwvSG92ZXJDYXJkPlxuICApXG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdG5vdGVSZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9Gb290bm90ZVJlZi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTRCLENBQUE7QUFFMUYsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUE7QUFFM0MsMEZBQTBGO0FBQzFGLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBMEI7SUFDcEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7SUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLGVBQU8sS0FBSyxHQUFJLENBQUE7SUFDekIsQ0FBQztJQUVELE9BQU8sS0FBQyxpQkFBaUIsT0FBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFBO0FBQ3JELENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQTZDO0lBQ3RFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXBELFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzVDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTTtRQUVmLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBO1FBQ2hDLEtBQUssTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztZQUMxRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEIsQ0FBQztRQUNELGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFaEIsT0FBTyxDQUNMLE1BQUMsU0FBUyxlQUNSLEtBQUMsZ0JBQWdCLElBQUMsTUFBTSxFQUFFLGVBQU8sS0FBSyxHQUFJLEdBQUksRUFDOUMsS0FBQyxnQkFBZ0IsSUFDZixTQUFTLEVBQUMsOEZBQThGLEVBQ3hHLElBQUksRUFBQyxLQUFLLEVBQ1YsVUFBVSxFQUFFLENBQUMsWUFFWixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ2QsY0FBSyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBSSxDQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUNGLFlBQUcsU0FBUyxFQUFDLHVCQUF1QixtQ0FBdUIsQ0FDNUQsR0FDZ0IsSUFDVCxDQUNiLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb21wb25lbnRQcm9wcywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBIb3ZlckNhcmQsIEhvdmVyQ2FyZENvbnRlbnQsIEhvdmVyQ2FyZFRyaWdnZXIgfSBmcm9tIFwiLi4vZWxlbWVudHMvaG92ZXItY2FyZC50c3hcIlxuXG5jb25zdCBGT09UTk9URV9QUkVGSVggPSBcIiN1c2VyLWNvbnRlbnQtZm4tXCJcblxuLyoqIFdyYXBzIGZvb3Rub3RlIHJlZmVyZW5jZSBsaW5rcyBpbiBhIEhvdmVyQ2FyZCB0aGF0IHByZXZpZXdzIGZvb3Rub3RlIGNvbnRlbnQgaW5saW5lICovXG5leHBvcnQgZnVuY3Rpb24gRm9vdG5vdGVSZWYocHJvcHM6IENvbXBvbmVudFByb3BzPFwiYVwiPikge1xuICBjb25zdCBocmVmID0gcHJvcHMuaHJlZiA/PyBcIlwiXG4gIGlmICghaHJlZi5zdGFydHNXaXRoKEZPT1ROT1RFX1BSRUZJWCkpIHtcbiAgICByZXR1cm4gPGEgey4uLnByb3BzfSAvPlxuICB9XG5cbiAgcmV0dXJuIDxGb290bm90ZUhvdmVyQ2FyZCB7Li4ucHJvcHN9IGhyZWY9e2hyZWZ9IC8+XG59XG5cbmZ1bmN0aW9uIEZvb3Rub3RlSG92ZXJDYXJkKHByb3BzOiBDb21wb25lbnRQcm9wczxcImFcIj4gJiB7IGhyZWY6IHN0cmluZyB9KSB7XG4gIGNvbnN0IFtmb290bm90ZUh0bWwsIHNldEZvb3Rub3RlSHRtbF0gPSB1c2VTdGF0ZShcIlwiKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBwcm9wcy5ocmVmLnNsaWNlKDEpXG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXRJZClcbiAgICBpZiAoIWVsKSByZXR1cm5cblxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgd3JhcHBlci5pbm5lckhUTUwgPSBlbC5pbm5lckhUTUxcbiAgICBmb3IgKGNvbnN0IGJhY2tyZWYgb2Ygd3JhcHBlci5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtZm9vdG5vdGUtYmFja3JlZl1cIikpIHtcbiAgICAgIGJhY2tyZWYucmVtb3ZlKClcbiAgICB9XG4gICAgc2V0Rm9vdG5vdGVIdG1sKHdyYXBwZXIuaW5uZXJIVE1MKVxuICB9LCBbcHJvcHMuaHJlZl0pXG5cbiAgcmV0dXJuIChcbiAgICA8SG92ZXJDYXJkPlxuICAgICAgPEhvdmVyQ2FyZFRyaWdnZXIgcmVuZGVyPXs8YSB7Li4ucHJvcHN9IC8+fSAvPlxuICAgICAgPEhvdmVyQ2FyZENvbnRlbnRcbiAgICAgICAgY2xhc3NOYW1lPVwicHJvc2UgZGFyazpwcm9zZS1pbnZlcnQgdGV4dC1zbSB3LTgwIFsmPnBdOm15LTEgWyY+cDpmaXJzdC1jaGlsZF06bXQtMCBbJj5wOmxhc3QtY2hpbGRdOm1iLTBcIlxuICAgICAgICBzaWRlPVwidG9wXCJcbiAgICAgICAgc2lkZU9mZnNldD17OH1cbiAgICAgID5cbiAgICAgICAge2Zvb3Rub3RlSHRtbCA/IChcbiAgICAgICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogZm9vdG5vdGVIdG1sIH19IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+Rm9vdG5vdGUgbm90IGZvdW5kPC9wPlxuICAgICAgICApfVxuICAgICAgPC9Ib3ZlckNhcmRDb250ZW50PlxuICAgIDwvSG92ZXJDYXJkPlxuICApXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /** Sticky site header: title, header sections and links, search and theme. `toggle`
2
+ * sits before the title from `lg`; `menu` opens the phone navigation */
3
+ export declare function Header(props: {
4
+ toggle?: React.ReactNode;
5
+ menu?: React.ReactNode;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { config } from "livemark:virtual";
3
+ import { useLocation, useMatch } from "@tanstack/react-router";
4
+ import { useState } from "react";
5
+ import { cn } from "cn";
6
+ import { currentSection } from "../content/article.js";
7
+ import { activeSiteLink } from "../helpers/section.js";
8
+ import { HeaderMenu } from "./HeaderMenu.js";
9
+ import { HeaderNav } from "./HeaderNav.js";
10
+ import { Search } from "./Search.js";
11
+ import { SiteLink } from "./SiteLink.js";
12
+ import { SiteTitle } from "./SiteTitle.js";
13
+ import { Theme } from "./Theme.js";
14
+ /** Sticky site header: title, header sections and links, search and theme. `toggle`
15
+ * sits before the title from `lg`; `menu` opens the phone navigation */
16
+ export function Header(props) {
17
+ const pathname = useLocation({ select: l => l.pathname });
18
+ const articleRoute = useMatch({ from: "/$", shouldThrow: false });
19
+ const activeSection = articleRoute
20
+ ? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
21
+ : undefined;
22
+ const siteLinkTarget = activeSiteLink(pathname, config.sections ?? []);
23
+ const [compactSearch, setCompactSearch] = useState(false);
24
+ return (_jsxs("header", { className: "sticky top-0 z-20 flex has-[[data-header-search]]:z-40 h-16 shrink-0 items-center border-b bg-background", children: [_jsxs("div", { className: cn("flex min-w-0 items-center self-stretch pl-4 lg:shrink-0", props.toggle ? "pr-4" : "lg:w-[calc(var(--sidebar-width,16rem)+4rem)]"), children: [props.toggle && _jsx("div", { className: "hidden lg:flex", children: props.toggle }), _jsx(SiteLink, { to: siteLinkTarget, className: cn("flex min-w-0 items-center gap-2", props.toggle && "lg:hidden"), children: _jsx(SiteTitle, {}) })] }), _jsx(HeaderNav, { activePrefix: activeSection?.prefix, onCompactChange: setCompactSearch }), _jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-1 pr-2 lg:pr-1", children: [_jsx(Search, { compact: compactSearch }), _jsx(Theme, {}), _jsx("div", { className: "lg:hidden", children: props.menu ?? _jsx(HeaderMenu, {}) })] })] }));
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNoQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBRW5DO3dFQUN3RTtBQUN4RSxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQTJEO0lBQ2hGLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDakUsTUFBTSxhQUFhLEdBQUcsWUFBWTtRQUNoQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUN6RCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ2IsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFekQsT0FBTyxDQUNMLGtCQUFRLFNBQVMsRUFBQywwR0FBMEcsYUFDMUgsZUFDRSxTQUFTLEVBQUUsRUFBRSxDQUNYLHlEQUF5RCxFQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDhDQUE4QyxDQUN2RSxhQUVBLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBSyxTQUFTLEVBQUMsZ0JBQWdCLFlBQUUsS0FBSyxDQUFDLE1BQU0sR0FBTyxFQUNyRSxLQUFDLFFBQVEsSUFDUCxFQUFFLEVBQUUsY0FBYyxFQUNsQixTQUFTLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLFlBRTdFLEtBQUMsU0FBUyxLQUFHLEdBQ0osSUFDUCxFQUNOLEtBQUMsU0FBUyxJQUNSLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUNuQyxlQUFlLEVBQUUsZ0JBQWdCLEdBQ2pDLEVBQ0YsZUFBSyxTQUFTLEVBQUMsdURBQXVELGFBQ3BFLEtBQUMsTUFBTSxJQUFDLE9BQU8sRUFBRSxhQUFhLEdBQUksRUFDbEMsS0FBQyxLQUFLLEtBQUcsRUFDVCxjQUFLLFNBQVMsRUFBQyxXQUFXLFlBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFDLFVBQVUsS0FBRyxHQUFPLElBQzNELElBQ0MsQ0FDVixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJsaXZlbWFyazp2aXJ0dWFsXCJcbmltcG9ydCB7IHVzZUxvY2F0aW9uLCB1c2VNYXRjaCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcbmltcG9ydCB7IGN1cnJlbnRTZWN0aW9uIH0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5pbXBvcnQgeyBhY3RpdmVTaXRlTGluayB9IGZyb20gXCIuLi9oZWxwZXJzL3NlY3Rpb24udHNcIlxuaW1wb3J0IHsgSGVhZGVyTWVudSB9IGZyb20gXCIuL0hlYWRlck1lbnUudHN4XCJcbmltcG9ydCB7IEhlYWRlck5hdiB9IGZyb20gXCIuL0hlYWRlck5hdi50c3hcIlxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSBcIi4vU2VhcmNoLnRzeFwiXG5pbXBvcnQgeyBTaXRlTGluayB9IGZyb20gXCIuL1NpdGVMaW5rLnRzeFwiXG5pbXBvcnQgeyBTaXRlVGl0bGUgfSBmcm9tIFwiLi9TaXRlVGl0bGUudHN4XCJcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSBcIi4vVGhlbWUudHN4XCJcblxuLyoqIFN0aWNreSBzaXRlIGhlYWRlcjogdGl0bGUsIGhlYWRlciBzZWN0aW9ucyBhbmQgbGlua3MsIHNlYXJjaCBhbmQgdGhlbWUuIGB0b2dnbGVgXG4gKiBzaXRzIGJlZm9yZSB0aGUgdGl0bGUgZnJvbSBgbGdgOyBgbWVudWAgb3BlbnMgdGhlIHBob25lIG5hdmlnYXRpb24gKi9cbmV4cG9ydCBmdW5jdGlvbiBIZWFkZXIocHJvcHM6IHsgdG9nZ2xlPzogUmVhY3QuUmVhY3ROb2RlOyBtZW51PzogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzaXRlTGlua1RhcmdldCA9IGFjdGl2ZVNpdGVMaW5rKHBhdGhuYW1lLCBjb25maWcuc2VjdGlvbnMgPz8gW10pXG4gIGNvbnN0IFtjb21wYWN0U2VhcmNoLCBzZXRDb21wYWN0U2VhcmNoXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHJldHVybiAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJzdGlja3kgdG9wLTAgei0yMCBmbGV4IGhhcy1bW2RhdGEtaGVhZGVyLXNlYXJjaF1dOnotNDAgaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIgYm9yZGVyLWIgYmctYmFja2dyb3VuZFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiZmxleCBtaW4tdy0wIGl0ZW1zLWNlbnRlciBzZWxmLXN0cmV0Y2ggcGwtNCBsZzpzaHJpbmstMFwiLFxuICAgICAgICAgIHByb3BzLnRvZ2dsZSA/IFwicHItNFwiIDogXCJsZzp3LVtjYWxjKHZhcigtLXNpZGViYXItd2lkdGgsMTZyZW0pKzRyZW0pXVwiLFxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMudG9nZ2xlICYmIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXhcIj57cHJvcHMudG9nZ2xlfTwvZGl2Pn1cbiAgICAgICAgPFNpdGVMaW5rXG4gICAgICAgICAgdG89e3NpdGVMaW5rVGFyZ2V0fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y24oXCJmbGV4IG1pbi13LTAgaXRlbXMtY2VudGVyIGdhcC0yXCIsIHByb3BzLnRvZ2dsZSAmJiBcImxnOmhpZGRlblwiKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgPC9TaXRlTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEhlYWRlck5hdlxuICAgICAgICBhY3RpdmVQcmVmaXg9e2FjdGl2ZVNlY3Rpb24/LnByZWZpeH1cbiAgICAgICAgb25Db21wYWN0Q2hhbmdlPXtzZXRDb21wYWN0U2VhcmNofVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtYXV0byBmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBnYXAtMSBwci0yIGxnOnByLTFcIj5cbiAgICAgICAgPFNlYXJjaCBjb21wYWN0PXtjb21wYWN0U2VhcmNofSAvPlxuICAgICAgICA8VGhlbWUgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpoaWRkZW5cIj57cHJvcHMubWVudSA/PyA8SGVhZGVyTWVudSAvPn08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICApXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ /** Phone navigation for a `Header` without a sidebar: the header sections and links */
2
+ export declare function HeaderMenu(): import("react").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { config } from "livemark:virtual";
3
+ import { useNavigate } from "@tanstack/react-router";
4
+ import { Menu } from "lucide-react";
5
+ import { Button } from "../elements/button.js";
6
+ import { DynamicIcon } from "../helpers/dynamic-icon.js";
7
+ import { useNavItems } from "../helpers/nav-items.js";
8
+ import { prefixUrl } from "../helpers/prefix-url.js";
9
+ import { MenuSheet } from "./MenuSheet.js";
10
+ /** Phone navigation for a `Header` without a sidebar: the header sections and links */
11
+ export function HeaderMenu() {
12
+ const items = useNavItems();
13
+ const navigate = useNavigate();
14
+ return (_jsx(MenuSheet, { title: "Navigation", items: items.map(item => ({
15
+ id: item.key,
16
+ label: item.suffix ? `${item.title} (${item.suffix})` : item.title,
17
+ icon: item.icon && _jsx(DynamicIcon, { name: item.icon, className: "size-4 shrink-0" }),
18
+ active: item.active,
19
+ onSelect: () => {
20
+ if (item.href)
21
+ window.location.assign(prefixUrl(item.href, config.base));
22
+ else if (item.target)
23
+ navigate({ to: item.target });
24
+ },
25
+ })), trigger: _jsx(Button, { variant: "ghost", size: "icon-sm", title: "Navigation", "aria-label": "Navigation", className: "cursor-pointer" }), children: _jsx(Menu, {}) }));
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0hlYWRlck1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF3QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQTBCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUUzQyx1RkFBdUY7QUFDdkYsTUFBTSxVQUFVLFVBQVU7SUFDeEIsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFDM0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFFOUIsT0FBTyxDQUNMLEtBQUMsU0FBUyxJQUNSLEtBQUssRUFBQyxZQUFZLEVBQ2xCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QixFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDbEUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksS0FBQyxXQUFXLElBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLGlCQUFpQixHQUFHO1lBQy9FLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksSUFBSSxDQUFDLElBQUk7b0JBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7cUJBQ25FLElBQUksSUFBSSxDQUFDLE1BQU07b0JBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1lBQ3JELENBQUM7U0FDRixDQUFDLENBQUMsRUFDSCxPQUFPLEVBQ0wsS0FBQyxNQUFNLElBQ0wsT0FBTyxFQUFDLE9BQU8sRUFDZixJQUFJLEVBQUMsU0FBUyxFQUNkLEtBQUssRUFBQyxZQUFZLGdCQUNQLFlBQVksRUFDdkIsU0FBUyxFQUFDLGdCQUFnQixHQUMxQixZQUdKLEtBQUMsSUFBSSxLQUFHLEdBQ0UsQ0FDYixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJsaXZlbWFyazp2aXJ0dWFsXCJcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgTWVudSB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4uL2VsZW1lbnRzL2J1dHRvbi50c3hcIlxuaW1wb3J0IHsgRHluYW1pY0ljb24gfSBmcm9tIFwiLi4vaGVscGVycy9keW5hbWljLWljb24udHN4XCJcbmltcG9ydCB7IHVzZU5hdkl0ZW1zIH0gZnJvbSBcIi4uL2hlbHBlcnMvbmF2LWl0ZW1zLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IE1lbnVTaGVldCB9IGZyb20gXCIuL01lbnVTaGVldC50c3hcIlxuXG4vKiogUGhvbmUgbmF2aWdhdGlvbiBmb3IgYSBgSGVhZGVyYCB3aXRob3V0IGEgc2lkZWJhcjogdGhlIGhlYWRlciBzZWN0aW9ucyBhbmQgbGlua3MgKi9cbmV4cG9ydCBmdW5jdGlvbiBIZWFkZXJNZW51KCkge1xuICBjb25zdCBpdGVtcyA9IHVzZU5hdkl0ZW1zKClcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpXG5cbiAgcmV0dXJuIChcbiAgICA8TWVudVNoZWV0XG4gICAgICB0aXRsZT1cIk5hdmlnYXRpb25cIlxuICAgICAgaXRlbXM9e2l0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgIGlkOiBpdGVtLmtleSxcbiAgICAgICAgbGFiZWw6IGl0ZW0uc3VmZml4ID8gYCR7aXRlbS50aXRsZX0gKCR7aXRlbS5zdWZmaXh9KWAgOiBpdGVtLnRpdGxlLFxuICAgICAgICBpY29uOiBpdGVtLmljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2l0ZW0uaWNvbn0gY2xhc3NOYW1lPVwic2l6ZS00IHNocmluay0wXCIgLz4sXG4gICAgICAgIGFjdGl2ZTogaXRlbS5hY3RpdmUsXG4gICAgICAgIG9uU2VsZWN0OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0uaHJlZikgd2luZG93LmxvY2F0aW9uLmFzc2lnbihwcmVmaXhVcmwoaXRlbS5ocmVmLCBjb25maWcuYmFzZSkpXG4gICAgICAgICAgZWxzZSBpZiAoaXRlbS50YXJnZXQpIG5hdmlnYXRlKHsgdG86IGl0ZW0udGFyZ2V0IH0pXG4gICAgICAgIH0sXG4gICAgICB9KSl9XG4gICAgICB0cmlnZ2VyPXtcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgc2l6ZT1cImljb24tc21cIlxuICAgICAgICAgIHRpdGxlPVwiTmF2aWdhdGlvblwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk5hdmlnYXRpb25cIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8TWVudSAvPlxuICAgIDwvTWVudVNoZWV0PlxuICApXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /** Header sections and links from `lg`: once they outgrow the bar, Search turns
2
+ * compact and the rest fold into a "More" menu */
3
+ export declare function HeaderNav(props: {
4
+ activePrefix?: string;
5
+ onCompactChange: (compact: boolean) => void;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronDown } from "lucide-react";
3
+ import { useLayoutEffect, useRef, useState } from "react";
4
+ import { cn } from "cn";
5
+ import { renderNavAnchor, useNavItems } from "../helpers/nav-items.js";
6
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../elements/dropdown-menu.js";
7
+ // The `lg:w-56` Search field minus its 36px icon-only form
8
+ const SEARCH_COMPACT_SAVING = 188;
9
+ /** Header sections and links from `lg`: once they outgrow the bar, Search turns
10
+ * compact and the rest fold into a "More" menu */
11
+ export function HeaderNav(props) {
12
+ const items = useNavItems(props.activePrefix);
13
+ const strip = useRef(null);
14
+ const measure = useRef(null);
15
+ const [visibleCount, setVisibleCount] = useState(items.length);
16
+ const onCompactChange = useRef(props.onCompactChange);
17
+ onCompactChange.current = props.onCompactChange;
18
+ useLayoutEffect(() => {
19
+ let compact = false;
20
+ const fit = () => {
21
+ if (!strip.current || !measure.current)
22
+ return;
23
+ const style = getComputedStyle(strip.current);
24
+ const width = strip.current.clientWidth -
25
+ parseFloat(style.paddingLeft) -
26
+ parseFloat(style.paddingRight);
27
+ if (width <= 0)
28
+ return;
29
+ // Measured as if Search were full, so toggling it never feeds back into the fit
30
+ const room = width - (compact ? SEARCH_COMPACT_SAVING : 0);
31
+ const gap = parseFloat(getComputedStyle(measure.current).columnGap) || 0;
32
+ const widths = [...measure.current.children].map(child => child.getBoundingClientRect().width);
33
+ const more = widths.pop() ?? 0;
34
+ const total = widths.reduce((sum, w) => sum + w, 0) + gap * (widths.length - 1);
35
+ compact = total > room;
36
+ let count = widths.length;
37
+ if (total > room + SEARCH_COMPACT_SAVING) {
38
+ let used = more;
39
+ count = 0;
40
+ for (const w of widths) {
41
+ if (used + gap + w > room + SEARCH_COMPACT_SAVING)
42
+ break;
43
+ used += gap + w;
44
+ count++;
45
+ }
46
+ }
47
+ onCompactChange.current(compact);
48
+ setVisibleCount(count);
49
+ };
50
+ fit();
51
+ const observer = new ResizeObserver(fit);
52
+ if (strip.current)
53
+ observer.observe(strip.current);
54
+ if (measure.current)
55
+ observer.observe(measure.current);
56
+ return () => observer.disconnect();
57
+ }, []);
58
+ const shown = items.slice(0, visibleCount);
59
+ const folded = items.slice(visibleCount);
60
+ return (_jsxs("nav", { ref: strip, className: "relative hidden w-0 min-w-0 flex-1 items-center gap-6 self-stretch overflow-hidden px-6 text-sm lg:flex xl:gap-8", children: [shown.map(item => (_jsx(HeaderNavLink, { item: item }, item.key))), folded.length > 0 && _jsx(HeaderNavMore, { items: folded }), _jsxs("div", { ref: measure, "aria-hidden": true, inert: true, className: "invisible absolute left-0 flex gap-6 whitespace-nowrap xl:gap-8", children: [items.map(item => (_jsx(HeaderNavLink, { item: item }, item.key))), _jsx(HeaderNavMoreTrigger, { active: false })] })] }));
61
+ }
62
+ function HeaderNavLink(props) {
63
+ return renderNavAnchor(props.item, cn("inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap text-foreground", props.item.active ? ACTIVE : IDLE));
64
+ }
65
+ function HeaderNavMore(props) {
66
+ return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { render: _jsx(HeaderNavMoreTrigger, { active: props.items.some(item => item.active) }) }), _jsx(DropdownMenuContent, { align: "end", className: "w-auto", children: props.items.map(item => (_jsx(DropdownMenuItem, { className: cn("cursor-pointer", item.active && "font-medium"), render: renderNavAnchor(item) }, item.key))) })] }));
67
+ }
68
+ function HeaderNavMoreTrigger(props) {
69
+ const { active, className, ...rest } = props;
70
+ return (_jsxs("button", { type: "button", ...rest, className: cn("inline-flex shrink-0 cursor-pointer items-center gap-1 whitespace-nowrap text-foreground", active ? ACTIVE : IDLE, className), children: ["More", _jsx(ChevronDown, { className: "size-3.5" })] }));
71
+ }
72
+ const ACTIVE = "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5";
73
+ const IDLE = "opacity-80 hover:opacity-100 transition-opacity";
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTmF2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyTmF2LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN2QixPQUFPLEVBQWdCLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBMEIsQ0FBQTtBQUNyRixPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEdBQ3BCLE1BQU0sOEJBQStCLENBQUE7QUFFdEMsMkRBQTJEO0FBQzNELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFBO0FBRWpDO2tEQUNrRDtBQUNsRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBR3pCO0lBQ0MsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQWMsSUFBSSxDQUFDLENBQUE7SUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDOUQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNyRCxlQUFlLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7SUFFL0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFDbkIsTUFBTSxHQUFHLEdBQUcs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LENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUN2QixLQUFDLGdCQUFnQixJQUVmLFNBQVMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsRUFDN0QsTUFBTSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFGeEIsSUFBSSxDQUFDLEdBQUcsQ0FHYixDQUNILENBQUMsR0FDa0IsSUFDVCxDQUNoQixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLEtBQTJEO0lBRTNELE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBQzVDLE9BQU8sQ0FDTCxrQkFDRSxJQUFJLEVBQUMsUUFBUSxLQUNULElBQUksRUFDUixTQUFTLEVBQUUsRUFBRSxDQUNYLDBGQUEwRixFQUMxRixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUN0QixTQUFTLENBQ1YscUJBR0QsS0FBQyxXQUFXLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBRyxJQUM3QixDQUNWLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcseURBQXlELENBQUE7QUFDeEUsTUFBTSxJQUFJLEdBQUcsaURBQWlELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcbmltcG9ydCB7IHR5cGUgTmF2SXRlbSwgcmVuZGVyTmF2QW5jaG9yLCB1c2VOYXZJdGVtcyB9IGZyb20gXCIuLi9oZWxwZXJzL25hdi1pdGVtcy50c3hcIlxuaW1wb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvZHJvcGRvd24tbWVudS50c3hcIlxuXG4vLyBUaGUgYGxnOnctNTZgIFNlYXJjaCBmaWVsZCBtaW51cyBpdHMgMzZweCBpY29uLW9ubHkgZm9ybVxuY29uc3QgU0VBUkNIX0NPTVBBQ1RfU0FWSU5HID0gMTg4XG5cbi8qKiBIZWFkZXIgc2VjdGlvbnMgYW5kIGxpbmtzIGZyb20gYGxnYDogb25jZSB0aGV5IG91dGdyb3cgdGhlIGJhciwgU2VhcmNoIHR1cm5zXG4gKiBjb21wYWN0IGFuZCB0aGUgcmVzdCBmb2xkIGludG8gYSBcIk1vcmVcIiBtZW51ICovXG5leHBvcnQgZnVuY3Rpb24gSGVhZGVyTmF2KHByb3BzOiB7XG4gIGFjdGl2ZVByZWZpeD86IHN0cmluZ1xuICBvbkNvbXBhY3RDaGFuZ2U6IChjb21wYWN0OiBib29sZWFuKSA9PiB2b2lkXG59KSB7XG4gIGNvbnN0IGl0ZW1zID0gdXNlTmF2SXRlbXMocHJvcHMuYWN0aXZlUHJlZml4KVxuICBjb25zdCBzdHJpcCA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbClcbiAgY29uc3QgbWVhc3VyZSA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Zpc2libGVDb3VudCwgc2V0VmlzaWJsZUNvdW50XSA9IHVzZVN0YXRlKGl0ZW1zLmxlbmd0aClcbiAgY29uc3Qgb25Db21wYWN0Q2hhbmdlID0gdXNlUmVmKHByb3BzLm9uQ29tcGFjdENoYW5nZSlcbiAgb25Db21wYWN0Q2hhbmdlLmN1cnJlbnQgPSBwcm9wcy5vbkNvbXBhY3RDaGFuZ2VcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb21wYWN0ID0gZmFsc2VcbiAgICBjb25zdCBmaXQgPSAoKSA9PiB7XG4gICAgICBpZiAoIXN0cmlwLmN1cnJlbnQgfHwgIW1lYXN1cmUuY3VycmVudCkgcmV0dXJuXG4gICAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoc3RyaXAuY3VycmVudClcbiAgICAgIGNvbnN0IHdpZHRoID1cbiAgICAgICAgc3RyaXAuY3VycmVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ0xlZnQpIC1cbiAgICAgICAgcGFyc2VGbG9hdChzdHlsZS5wYWRkaW5nUmlnaHQpXG4gICAgICBpZiAod2lkdGggPD0gMCkgcmV0dXJuXG4gICAgICAvLyBNZWFzdXJlZCBhcyBpZiBTZWFyY2ggd2VyZSBmdWxsLCBzbyB0b2dnbGluZyBpdCBuZXZlciBmZWVkcyBiYWNrIGludG8gdGhlIGZpdFxuICAgICAgY29uc3Qgcm9vbSA9IHdpZHRoIC0gKGNvbXBhY3QgPyBTRUFSQ0hfQ09NUEFDVF9TQVZJTkcgOiAwKVxuICAgICAgY29uc3QgZ2FwID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKG1lYXN1cmUuY3VycmVudCkuY29sdW1uR2FwKSB8fCAwXG4gICAgICBjb25zdCB3aWR0aHMgPSBbLi4ubWVhc3VyZS5jdXJyZW50LmNoaWxkcmVuXS5tYXAoXG4gICAgICAgIGNoaWxkID0+IGNoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLFxuICAgICAgKVxuICAgICAgY29uc3QgbW9yZSA9IHdpZHRocy5wb3AoKSA/PyAwXG4gICAgICBjb25zdCB0b3RhbCA9IHdpZHRocy5yZWR1Y2UoKHN1bSwgdykgPT4gc3VtICsgdywgMCkgKyBnYXAgKiAod2lkdGhzLmxlbmd0aCAtIDEpXG5cbiAgICAgIGNvbXBhY3QgPSB0b3RhbCA+IHJvb21cbiAgICAgIGxldCBjb3VudCA9IHdpZHRocy5sZW5ndGhcbiAgICAgIGlmICh0b3RhbCA+IHJvb20gKyBTRUFSQ0hfQ09NUEFDVF9TQVZJTkcpIHtcbiAgICAgICAgbGV0IHVzZWQgPSBtb3JlXG4gICAgICAgIGNvdW50ID0gMFxuICAgICAgICBmb3IgKGNvbnN0IHcgb2Ygd2lkdGhzKSB7XG4gICAgICAgICAgaWYgKHVzZWQgKyBnYXAgKyB3ID4gcm9vbSArIFNFQVJDSF9DT01QQUNUX1NBVklORykgYnJlYWtcbiAgICAgICAgICB1c2VkICs9IGdhcCArIHdcbiAgICAgICAgICBjb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9uQ29tcGFjdENoYW5nZS5jdXJyZW50KGNvbXBhY3QpXG4gICAgICBzZXRWaXNpYmxlQ291bnQoY291bnQpXG4gICAgfVxuICAgIGZpdCgpXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KVxuICAgIGlmIChzdHJpcC5jdXJyZW50KSBvYnNlcnZlci5vYnNlcnZlKHN0cmlwLmN1cnJlbnQpXG4gICAgaWYgKG1lYXN1cmUuY3VycmVudCkgb2JzZXJ2ZXIub2JzZXJ2ZShtZWFzdXJlLmN1cnJlbnQpXG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICB9LCBbXSlcblxuICBjb25zdCBzaG93biA9IGl0ZW1zLnNsaWNlKDAsIHZpc2libGVDb3VudClcbiAgY29uc3QgZm9sZGVkID0gaXRlbXMuc2xpY2UodmlzaWJsZUNvdW50KVxuXG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgcmVmPXtzdHJpcH1cbiAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGhpZGRlbiB3LTAgbWluLXctMCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC02IHNlbGYtc3RyZXRjaCBvdmVyZmxvdy1oaWRkZW4gcHgtNiB0ZXh0LXNtIGxnOmZsZXggeGw6Z2FwLThcIlxuICAgID5cbiAgICAgIHtzaG93bi5tYXAoaXRlbSA9PiAoXG4gICAgICAgIDxIZWFkZXJOYXZMaW5rIGtleT17aXRlbS5rZXl9IGl0ZW09e2l0ZW19IC8+XG4gICAgICApKX1cbiAgICAgIHtmb2xkZWQubGVuZ3RoID4gMCAmJiA8SGVhZGVyTmF2TW9yZSBpdGVtcz17Zm9sZGVkfSAvPn1cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXttZWFzdXJlfVxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBpbmVydFxuICAgICAgICBjbGFzc05hbWU9XCJpbnZpc2libGUgYWJzb2x1dGUgbGVmdC0wIGZsZXggZ2FwLTYgd2hpdGVzcGFjZS1ub3dyYXAgeGw6Z2FwLThcIlxuICAgICAgPlxuICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgIDxIZWFkZXJOYXZMaW5rIGtleT17aXRlbS5rZXl9IGl0ZW09e2l0ZW19IC8+XG4gICAgICAgICkpfVxuICAgICAgICA8SGVhZGVyTmF2TW9yZVRyaWdnZXIgYWN0aXZlPXtmYWxzZX0gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuICApXG59XG5cbmZ1bmN0aW9uIEhlYWRlck5hdkxpbmsocHJvcHM6IHsgaXRlbTogTmF2SXRlbSB9KSB7XG4gIHJldHVybiByZW5kZXJOYXZBbmNob3IoXG4gICAgcHJvcHMuaXRlbSxcbiAgICBjbihcbiAgICAgIFwiaW5saW5lLWZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGdhcC0xLjUgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1mb3JlZ3JvdW5kXCIsXG4gICAgICBwcm9wcy5pdGVtLmFjdGl2ZSA/IEFDVElWRSA6IElETEUsXG4gICAgKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBIZWFkZXJOYXZNb3JlKHByb3BzOiB7IGl0ZW1zOiBOYXZJdGVtW10gfSkge1xuICByZXR1cm4gKFxuICAgIDxEcm9wZG93bk1lbnU+XG4gICAgICA8RHJvcGRvd25NZW51VHJpZ2dlclxuICAgICAgICByZW5kZXI9ezxIZWFkZXJOYXZNb3JlVHJpZ2dlciBhY3RpdmU9e3Byb3BzLml0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtLmFjdGl2ZSl9IC8+fVxuICAgICAgLz5cbiAgICAgIDxEcm9wZG93bk1lbnVDb250ZW50IGFsaWduPVwiZW5kXCIgY2xhc3NOYW1lPVwidy1hdXRvXCI+XG4gICAgICAgIHtwcm9wcy5pdGVtcy5tYXAoaXRlbSA9PiAoXG4gICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NuKFwiY3Vyc29yLXBvaW50ZXJcIiwgaXRlbS5hY3RpdmUgJiYgXCJmb250LW1lZGl1bVwiKX1cbiAgICAgICAgICAgIHJlbmRlcj17cmVuZGVyTmF2QW5jaG9yKGl0ZW0pfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgIDwvRHJvcGRvd25NZW51PlxuICApXG59XG5cbmZ1bmN0aW9uIEhlYWRlck5hdk1vcmVUcmlnZ2VyKFxuICBwcm9wczogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4gJiB7IGFjdGl2ZTogYm9vbGVhbiB9LFxuKSB7XG4gIGNvbnN0IHsgYWN0aXZlLCBjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB7Li4ucmVzdH1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiaW5saW5lLWZsZXggc2hyaW5rLTAgY3Vyc29yLXBvaW50ZXIgaXRlbXMtY2VudGVyIGdhcC0xIHdoaXRlc3BhY2Utbm93cmFwIHRleHQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBhY3RpdmUgPyBBQ1RJVkUgOiBJRExFLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICApfVxuICAgID5cbiAgICAgIE1vcmVcbiAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuY29uc3QgQUNUSVZFID0gXCJmb250LW1lZGl1bSBib3JkZXItYi0yIGJvcmRlci1mb3JlZ3JvdW5kIHBiLTAuNSAtbWItMC41XCJcbmNvbnN0IElETEUgPSBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ /** Search field that takes over the header below `lg`, with results dropping under it */
2
+ export declare function HeaderSearch(props: {
3
+ onClose: () => void;
4
+ }): import("react").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useLayoutEffect, useRef, useState } from "react";
3
+ import { X } from "lucide-react";
4
+ import { SearchResultGroups, useArticleSearch } from "../helpers/article-search.js";
5
+ import { Command, CommandEmpty, CommandInput, CommandList } from "../elements/command.js";
6
+ /** Search field that takes over the header below `lg`, with results dropping under it */
7
+ export function HeaderSearch(props) {
8
+ const search = useArticleSearch();
9
+ const bar = useRef(null);
10
+ const [panelTop, setPanelTop] = useState();
11
+ // Measured, not `top-16`: while the Banner is in view it pushes the header down.
12
+ useLayoutEffect(() => {
13
+ const measure = () => setPanelTop(bar.current?.getBoundingClientRect().bottom);
14
+ measure();
15
+ window.addEventListener("scroll", measure, { passive: true });
16
+ window.addEventListener("resize", measure);
17
+ return () => {
18
+ window.removeEventListener("scroll", measure);
19
+ window.removeEventListener("resize", measure);
20
+ };
21
+ }, []);
22
+ // `data-header-search` lifts the header over the Toc bar and BackToTop (Layout).
23
+ return (_jsxs(Command, { ref: bar, "data-header-search": true, shouldFilter: false, loop: true, onKeyDown: event => {
24
+ if (event.key === "Escape")
25
+ props.onClose();
26
+ }, className: "absolute inset-0 z-10 overflow-visible rounded-none! bg-background p-0 lg:hidden", children: [_jsxs("div", { className: "flex h-full items-center gap-1 pl-1 pr-2", children: [_jsx("div", { className: "flex-1 [&_[data-slot=command-input-wrapper]]:p-0 [&_[data-slot=input-group]]:border-transparent! [&_[data-slot=input-group]]:bg-transparent! [&_[data-slot=input-group]]:ring-0!", children: _jsx(CommandInput, { autoFocus: true, placeholder: "Search docs...", value: search.query, onValueChange: search.searchArticles }) }), _jsx("button", { type: "button", onClick: props.onClose, "aria-label": "Close search", title: "Close search", className: "flex size-9 shrink-0 items-center justify-center rounded-control text-muted-foreground hover:bg-muted hover:text-foreground transition-colors cursor-pointer", children: _jsx(X, { className: "size-5" }) })] }), _jsx("div", { style: { top: panelTop }, className: "fixed inset-x-0 bottom-0 flex flex-col border-t bg-background p-1", children: _jsxs(CommandList, { className: "max-h-none flex-1 overscroll-contain", children: [_jsx(CommandEmpty, { children: search.query.trim()
27
+ ? "No results found."
28
+ : "Type to search across all contents." }), _jsx(SearchResultGroups, { query: search.query, grouped: search.grouped, onSelect: path => {
29
+ props.onClose();
30
+ search.selectArticle(path);
31
+ } })] }) })] }));
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyU2VhcmNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3pELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQStCLENBQUE7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF5QixDQUFBO0FBRTFGLHlGQUF5RjtBQUN6RixNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQThCO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUE7SUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQTtJQUN4QyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFFBQVEsRUFBVSxDQUFBO0lBRWxELGlGQUFpRjtJQUNqRixlQUFlLENBQUMsR0FBRyxFQUFFO1FBQ25CLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUUsT0FBTyxFQUFFLENBQUE7UUFDVCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDMUMsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzdDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDL0MsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4saUZBQWlGO0lBQ2pGLE9BQU8sQ0FDTCxNQUFDLE9BQU8sSUFDTixHQUFHLEVBQUUsR0FBRyw4QkFFUixZQUFZLEVBQUUsS0FBSyxFQUNuQixJQUFJLFFBQ0osU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRO2dCQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUM3QyxDQUFDLEVBQ0QsU0FBUyxFQUFDLGtGQUFrRixhQUU1RixlQUFLLFNBQVMsRUFBQywwQ0FBMEMsYUFDdkQsY0FBSyxTQUFTLEVBQUMsa0xBQWtMLFlBQy9MLEtBQUMsWUFBWSxJQUNYLFNBQVMsUUFDVCxXQUFXLEVBQUMsZ0JBQWdCLEVBQzVCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGNBQWMsR0FDcEMsR0FDRSxFQUNOLGlCQUNFLElBQUksRUFBQyxRQUFRLEVBQ2IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLGdCQUNYLGNBQWMsRUFDekIsS0FBSyxFQUFDLGNBQWMsRUFDcEIsU0FBUyxFQUFDLDhKQUE4SixZQUV4SyxLQUFDLENBQUMsSUFBQyxTQUFTLEVBQUMsUUFBUSxHQUFHLEdBQ2pCLElBQ0wsRUFDTixjQUNFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFDeEIsU0FBUyxFQUFDLG1FQUFtRSxZQUU3RSxNQUFDLFdBQVcsSUFBQyxTQUFTLEVBQUMsc0NBQXNDLGFBQzNELEtBQUMsWUFBWSxjQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dDQUNsQixDQUFDLENBQUMsbUJBQW1CO2dDQUNyQixDQUFDLENBQUMscUNBQXFDLEdBQzVCLEVBQ2YsS0FBQyxrQkFBa0IsSUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQ25CLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0NBQ2YsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO2dDQUNmLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBQzVCLENBQUMsR0FDRCxJQUNVLEdBQ1YsSUFDRSxDQUNYLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IFggfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdEdyb3VwcywgdXNlQXJ0aWNsZVNlYXJjaCB9IGZyb20gXCIuLi9oZWxwZXJzL2FydGljbGUtc2VhcmNoLnRzeFwiXG5pbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kRW1wdHksIENvbW1hbmRJbnB1dCwgQ29tbWFuZExpc3QgfSBmcm9tIFwiLi4vZWxlbWVudHMvY29tbWFuZC50c3hcIlxuXG4vKiogU2VhcmNoIGZpZWxkIHRoYXQgdGFrZXMgb3ZlciB0aGUgaGVhZGVyIGJlbG93IGBsZ2AsIHdpdGggcmVzdWx0cyBkcm9wcGluZyB1bmRlciBpdCAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhlYWRlclNlYXJjaChwcm9wczogeyBvbkNsb3NlOiAoKSA9PiB2b2lkIH0pIHtcbiAgY29uc3Qgc2VhcmNoID0gdXNlQXJ0aWNsZVNlYXJjaCgpXG4gIGNvbnN0IGJhciA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3BhbmVsVG9wLCBzZXRQYW5lbFRvcF0gPSB1c2VTdGF0ZTxudW1iZXI+KClcblxuICAvLyBNZWFzdXJlZCwgbm90IGB0b3AtMTZgOiB3aGlsZSB0aGUgQmFubmVyIGlzIGluIHZpZXcgaXQgcHVzaGVzIHRoZSBoZWFkZXIgZG93bi5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBtZWFzdXJlID0gKCkgPT4gc2V0UGFuZWxUb3AoYmFyLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSlcbiAgICBtZWFzdXJlKClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBtZWFzdXJlLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBtZWFzdXJlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBtZWFzdXJlKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgbWVhc3VyZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIGBkYXRhLWhlYWRlci1zZWFyY2hgIGxpZnRzIHRoZSBoZWFkZXIgb3ZlciB0aGUgVG9jIGJhciBhbmQgQmFja1RvVG9wIChMYXlvdXQpLlxuICByZXR1cm4gKFxuICAgIDxDb21tYW5kXG4gICAgICByZWY9e2Jhcn1cbiAgICAgIGRhdGEtaGVhZGVyLXNlYXJjaFxuICAgICAgc2hvdWxkRmlsdGVyPXtmYWxzZX1cbiAgICAgIGxvb3BcbiAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSBwcm9wcy5vbkNsb3NlKClcbiAgICAgIH19XG4gICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMTAgb3ZlcmZsb3ctdmlzaWJsZSByb3VuZGVkLW5vbmUhIGJnLWJhY2tncm91bmQgcC0wIGxnOmhpZGRlblwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXIgZ2FwLTEgcGwtMSBwci0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIFsmX1tkYXRhLXNsb3Q9Y29tbWFuZC1pbnB1dC13cmFwcGVyXV06cC0wIFsmX1tkYXRhLXNsb3Q9aW5wdXQtZ3JvdXBdXTpib3JkZXItdHJhbnNwYXJlbnQhIFsmX1tkYXRhLXNsb3Q9aW5wdXQtZ3JvdXBdXTpiZy10cmFuc3BhcmVudCEgWyZfW2RhdGEtc2xvdD1pbnB1dC1ncm91cF1dOnJpbmctMCFcIj5cbiAgICAgICAgICA8Q29tbWFuZElucHV0XG4gICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGRvY3MuLi5cIlxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaC5xdWVyeX1cbiAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9e3NlYXJjaC5zZWFyY2hBcnRpY2xlc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xvc2V9XG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHNlYXJjaFwiXG4gICAgICAgICAgdGl0bGU9XCJDbG9zZSBzZWFyY2hcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggc2l6ZS05IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWNvbnRyb2wgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOmJnLW11dGVkIGhvdmVyOnRleHQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8WCBjbGFzc05hbWU9XCJzaXplLTVcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17eyB0b3A6IHBhbmVsVG9wIH19XG4gICAgICAgIGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LXgtMCBib3R0b20tMCBmbGV4IGZsZXgtY29sIGJvcmRlci10IGJnLWJhY2tncm91bmQgcC0xXCJcbiAgICAgID5cbiAgICAgICAgPENvbW1hbmRMaXN0IGNsYXNzTmFtZT1cIm1heC1oLW5vbmUgZmxleC0xIG92ZXJzY3JvbGwtY29udGFpblwiPlxuICAgICAgICAgIDxDb21tYW5kRW1wdHk+XG4gICAgICAgICAgICB7c2VhcmNoLnF1ZXJ5LnRyaW0oKVxuICAgICAgICAgICAgICA/IFwiTm8gcmVzdWx0cyBmb3VuZC5cIlxuICAgICAgICAgICAgICA6IFwiVHlwZSB0byBzZWFyY2ggYWNyb3NzIGFsbCBjb250ZW50cy5cIn1cbiAgICAgICAgICA8L0NvbW1hbmRFbXB0eT5cbiAgICAgICAgICA8U2VhcmNoUmVzdWx0R3JvdXBzXG4gICAgICAgICAgICBxdWVyeT17c2VhcmNoLnF1ZXJ5fVxuICAgICAgICAgICAgZ3JvdXBlZD17c2VhcmNoLmdyb3VwZWR9XG4gICAgICAgICAgICBvblNlbGVjdD17cGF0aCA9PiB7XG4gICAgICAgICAgICAgIHByb3BzLm9uQ2xvc2UoKVxuICAgICAgICAgICAgICBzZWFyY2guc2VsZWN0QXJ0aWNsZShwYXRoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0NvbW1hbmRMaXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9Db21tYW5kPlxuICApXG59XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  export declare const headingComponents: {
2
- h1: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
3
- h2: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
4
- h3: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
5
- h4: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
6
- h5: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
7
- h6: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
2
+ h1: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
3
+ h2: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
4
+ h3: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
5
+ h4: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
6
+ h5: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
7
+ h6: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
8
8
  };
@@ -1,5 +1,5 @@
1
1
  /** Inline badge rendered from :badge text directives */
2
2
  export declare function InlineBadge(props: {
3
3
  label: string;
4
- variant?: "default" | "secondary" | "destructive" | "outline";
5
- }): import("react/jsx-runtime").JSX.Element;
4
+ variant?: "default" | "secondary" | "positive" | "warning" | "destructive" | "outline";
5
+ }): import("react").JSX.Element;
@@ -4,4 +4,4 @@ import { Badge } from "../elements/badge.js";
4
4
  export function InlineBadge(props) {
5
5
  return _jsx(Badge, { variant: props.variant, children: props.label });
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lQmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9JbmxpbmVCYWRnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBdUIsQ0FBQTtBQUU3Qyx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUczQjtJQUNDLE9BQU8sS0FBQyxLQUFLLElBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLFlBQUcsS0FBSyxDQUFDLEtBQUssR0FBUyxDQUFBO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRnZSB9IGZyb20gXCIuLi9lbGVtZW50cy9iYWRnZS50c3hcIlxuXG4vKiogSW5saW5lIGJhZGdlIHJlbmRlcmVkIGZyb20gOmJhZGdlIHRleHQgZGlyZWN0aXZlcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZUJhZGdlKHByb3BzOiB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJzZWNvbmRhcnlcIiB8IFwiZGVzdHJ1Y3RpdmVcIiB8IFwib3V0bGluZVwiXG59KSB7XG4gIHJldHVybiA8QmFkZ2UgdmFyaWFudD17cHJvcHMudmFyaWFudH0+e3Byb3BzLmxhYmVsfTwvQmFkZ2U+XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lQmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9JbmxpbmVCYWRnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBdUIsQ0FBQTtBQUU3Qyx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUczQjtJQUNDLE9BQU8sS0FBQyxLQUFLLElBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLFlBQUcsS0FBSyxDQUFDLEtBQUssR0FBUyxDQUFBO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRnZSB9IGZyb20gXCIuLi9lbGVtZW50cy9iYWRnZS50c3hcIlxuXG4vKiogSW5saW5lIGJhZGdlIHJlbmRlcmVkIGZyb20gOmJhZGdlIHRleHQgZGlyZWN0aXZlcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZUJhZGdlKHByb3BzOiB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJzZWNvbmRhcnlcIiB8IFwicG9zaXRpdmVcIiB8IFwid2FybmluZ1wiIHwgXCJkZXN0cnVjdGl2ZVwiIHwgXCJvdXRsaW5lXCJcbn0pIHtcbiAgcmV0dXJuIDxCYWRnZSB2YXJpYW50PXtwcm9wcy52YXJpYW50fT57cHJvcHMubGFiZWx9PC9CYWRnZT5cbn1cbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  export declare function InlineIcon(props: {
3
3
  name: string;
4
4
  className?: string;
5
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  /** Renders the page's table of contents inline within the content */
2
2
  export declare function InlineToc(props: {
3
3
  maxLevel?: string;
4
- }): import("react/jsx-runtime").JSX.Element | null;
4
+ }): import("react").JSX.Element | null;
@@ -7,8 +7,6 @@ export function InlineToc(props) {
7
7
  const items = allItems.filter(item => item.depth <= maxDepth);
8
8
  if (items.length === 0)
9
9
  return null;
10
- return (_jsxs("nav", { className: "not-prose my-8 rounded-xl border border-border bg-card p-6", children: [
11
- _jsx("p", { className: "text-base font-semibold mb-4", children: "Table of Contents" }), _jsx("ul", { className: "text-base space-y-2.5", children: items.map(item => (_jsx("li", { style: { paddingLeft: `${(item.depth - 2) * 1.25}rem` }, children: _jsx("a", { href: item.url, className: "text-muted-foreground hover:text-primary transition-colors", children: item.title }) }, item.url))) })
12
- ] }));
10
+ return (_jsxs("nav", { className: "not-prose my-8 rounded-card border border-border bg-card p-6", children: [_jsx("p", { className: "text-base font-semibold mb-4", children: "Table of Contents" }), _jsx("ul", { className: "text-base space-y-2.5", children: items.map(item => (_jsx("li", { style: { paddingLeft: `${(item.depth - 2) * 1.25}rem` }, children: _jsx("a", { href: item.url, className: "text-muted-foreground hover:text-primary transition-colors", children: item.title }) }, item.url))) })] }));
13
11
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lVG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSW5saW5lVG9jLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRXZELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQTRCO0lBQ3BELE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQTtJQUU3RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRW5DLE9BQU8sQ0FDTCxlQUFLLFNBQVMsRUFBQyw0REFBNEQ7WUFDekUsWUFBRyxTQUFTLEVBQUMsOEJBQThCLGtDQUFzQixFQUNqRSxhQUFJLFNBQVMsRUFBQyx1QkFBdUIsWUFDbEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2pCLGFBQW1CLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxZQUN4RSxZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUNkLFNBQVMsRUFBQyw0REFBNEQsWUFFckUsSUFBSSxDQUFDLEtBQUssR0FDVCxJQU5HLElBQUksQ0FBQyxHQUFHLENBT1osQ0FDTixDQUFDLEdBQ0M7WUFDRCxDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlVG9jSXRlbXMgfSBmcm9tIFwiLi4vaGVscGVycy90b2MtY29udGV4dC50c1wiXG5cbi8qKiBSZW5kZXJzIHRoZSBwYWdlJ3MgdGFibGUgb2YgY29udGVudHMgaW5saW5lIHdpdGhpbiB0aGUgY29udGVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZVRvYyhwcm9wczogeyBtYXhMZXZlbD86IHN0cmluZyB9KSB7XG4gIGNvbnN0IGFsbEl0ZW1zID0gdXNlVG9jSXRlbXMoKVxuICBjb25zdCBtYXhEZXB0aCA9IHByb3BzLm1heExldmVsID8gTnVtYmVyKHByb3BzLm1heExldmVsKSA6IDRcbiAgY29uc3QgaXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmRlcHRoIDw9IG1heERlcHRoKVxuXG4gIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8bmF2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS04IHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctY2FyZCBwLTZcIj5cbiAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LXNlbWlib2xkIG1iLTRcIj5UYWJsZSBvZiBDb250ZW50czwvcD5cbiAgICAgIDx1bCBjbGFzc05hbWU9XCJ0ZXh0LWJhc2Ugc3BhY2UteS0yLjVcIj5cbiAgICAgICAge2l0ZW1zLm1hcChpdGVtID0+IChcbiAgICAgICAgICA8bGkga2V5PXtpdGVtLnVybH0gc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IGAkeyhpdGVtLmRlcHRoIC0gMikgKiAxLjI1fXJlbWAgfX0+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPXtpdGVtLnVybH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICkpfVxuICAgICAgPC91bD5cbiAgICA8L25hdj5cbiAgKVxufVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lVG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSW5saW5lVG9jLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRXZELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQTRCO0lBQ3BELE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQTtJQUU3RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRW5DLE9BQU8sQ0FDTCxlQUFLLFNBQVMsRUFBQyw4REFBOEQsYUFDM0UsWUFBRyxTQUFTLEVBQUMsOEJBQThCLGtDQUFzQixFQUNqRSxhQUFJLFNBQVMsRUFBQyx1QkFBdUIsWUFDbEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2pCLGFBQW1CLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxZQUN4RSxZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUNkLFNBQVMsRUFBQyw0REFBNEQsWUFFckUsSUFBSSxDQUFDLEtBQUssR0FDVCxJQU5HLElBQUksQ0FBQyxHQUFHLENBT1osQ0FDTixDQUFDLEdBQ0MsSUFDRCxDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlVG9jSXRlbXMgfSBmcm9tIFwiLi4vaGVscGVycy90b2MtY29udGV4dC50c1wiXG5cbi8qKiBSZW5kZXJzIHRoZSBwYWdlJ3MgdGFibGUgb2YgY29udGVudHMgaW5saW5lIHdpdGhpbiB0aGUgY29udGVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZVRvYyhwcm9wczogeyBtYXhMZXZlbD86IHN0cmluZyB9KSB7XG4gIGNvbnN0IGFsbEl0ZW1zID0gdXNlVG9jSXRlbXMoKVxuICBjb25zdCBtYXhEZXB0aCA9IHByb3BzLm1heExldmVsID8gTnVtYmVyKHByb3BzLm1heExldmVsKSA6IDRcbiAgY29uc3QgaXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmRlcHRoIDw9IG1heERlcHRoKVxuXG4gIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8bmF2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS04IHJvdW5kZWQtY2FyZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1jYXJkIHAtNlwiPlxuICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgbWItNFwiPlRhYmxlIG9mIENvbnRlbnRzPC9wPlxuICAgICAgPHVsIGNsYXNzTmFtZT1cInRleHQtYmFzZSBzcGFjZS15LTIuNVwiPlxuICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgIDxsaSBrZXk9e2l0ZW0udXJsfSBzdHlsZT17eyBwYWRkaW5nTGVmdDogYCR7KGl0ZW0uZGVwdGggLSAyKSAqIDEuMjV9cmVtYCB9fT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9e2l0ZW0udXJsfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKSl9XG4gICAgICA8L3VsPlxuICAgIDwvbmF2PlxuICApXG59XG4iXX0=
@@ -1,4 +1,5 @@
1
+ /** Site chrome around a page: banner, header, sidebar and back-to-top */
1
2
  export declare function Layout(props: {
2
3
  withSidebar?: boolean;
3
4
  children?: React.ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): import("react").JSX.Element;
@@ -1,62 +1,12 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { config } from "livemark:virtual";
3
- import { Link, useLocation, useMatch } from "@tanstack/react-router";
4
- import { useHotkey } from "@tanstack/react-hotkeys";
5
- import { currentSection, sectionFirstArticle, sectionFlatArticles, sortedArticles, } from "../content/article.js";
6
- import { DynamicIcon } from "../helpers/dynamic-icon.js";
7
- import { prefixUrl } from "../helpers/prefix-url.js";
8
- import { activeSiteLink, customSectionActive } from "../helpers/section.js";
9
2
  import { SidebarInset, SidebarProvider, SidebarTrigger, useSidebar, } from "../elements/sidebar.js";
10
3
  import { BackToTop } from "./BackToTop.js";
11
4
  import { Banner } from "./Banner.js";
5
+ import { Header } from "./Header.js";
12
6
  import { Sidebar } from "./Sidebar.js";
13
- import { SiteLink } from "./SiteLink.js";
14
- import { SiteTitle } from "./SiteTitle.js";
15
- function splatFor(pathname) {
16
- return { _splat: pathname.replace(/^\/|\/$/g, "") };
17
- }
7
+ /** Site chrome around a page: banner, header, sidebar and back-to-top */
18
8
  export function Layout(props) {
19
- const pathname = useLocation({ select: l => l.pathname });
20
- const articleRoute = useMatch({ from: "/$", shouldThrow: false });
21
- const activeSection = articleRoute
22
- ? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
23
- : undefined;
24
- const siteLinkTarget = activeSiteLink(pathname, config.sections ?? []);
25
- useHotkey("J", () => window.scrollBy({ top: window.innerHeight * 0.8, behavior: "smooth" }));
26
- useHotkey("K", () => window.scrollBy({ top: -window.innerHeight * 0.8, behavior: "smooth" }));
27
- const sections = config.sections;
28
- const header = (_jsxs("header", { className: "sticky top-0 z-20 flex h-16 shrink-0 items-center border-b bg-background", children: [
29
- _jsx("div", { className: `flex items-center self-stretch pl-4 ${props.withSidebar ? "pr-4" : "lg:pr-20"}`, children: props.withSidebar ? (_jsxs(_Fragment, { children: [
30
- _jsx("div", { className: "hidden lg:flex", children: _jsx(SidebarTrigger, {}) }), _jsx(SiteLink, { to: siteLinkTarget, className: "lg:hidden flex items-center gap-2", children: _jsx(SiteTitle, {}) })
31
- ] })) : (_jsx(SiteLink, { to: siteLinkTarget, className: "flex items-center gap-2", children: _jsx(SiteTitle, {}) })) }), _jsxs("div", { className: "hidden lg:flex flex-1 items-center gap-8 self-stretch px-6 text-sm", children: [sections?.length ? (sections
32
- .filter(section => section.position === "header")
33
- .map(section => {
34
- const icon = section.icon;
35
- if (section.type === "custom") {
36
- const isActive = customSectionActive(section.url, pathname);
37
- return (_jsxs("a", { href: prefixUrl(section.url, config.base), className: `inline-flex items-center gap-1.5 text-foreground ${isActive
38
- ? "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5"
39
- : "opacity-80 hover:opacity-100 transition-opacity"}`, children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-3.5" }), _jsx("span", { children: section.title })
40
- ] }, section.url));
41
- }
42
- const isActive = activeSection?.prefix === section.prefix;
43
- const target = section.type === "blog" || section.type === "changelog"
44
- ? section.prefix
45
- : sectionFirstArticle.get(section.prefix);
46
- const latestVersion = section.type === "changelog" && section.version
47
- ? sortedArticles.find(a => a.path === sectionFlatArticles.get(section.prefix)?.[0])?.title
48
- : undefined;
49
- return (_jsxs(Link, { to: target === "/" ? "/" : "/$", params: target && target !== "/" ? splatFor(target) : {}, className: `inline-flex items-center gap-1.5 text-foreground ${isActive
50
- ? "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5"
51
- : "opacity-80 hover:opacity-100 transition-opacity"}`, children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-3.5" }), _jsxs("span", { children: [section.title, latestVersion && (_jsxs("span", { className: "opacity-80", children: [" (", latestVersion, ")"] }))] })
52
- ] }, section.prefix));
53
- })) : (_jsx(Link, { to: "/", className: "text-foreground font-medium underline underline-offset-4", children: "Docs" })), config.links
54
- ?.filter(link => link.position === "header" &&
55
- (!link.prefix || link.prefix === activeSection?.prefix))
56
- .map(link => (_jsxs("a", { href: prefixUrl(link.url, config.base), className: "text-foreground opacity-80 hover:opacity-100 transition-opacity", children: [link.icon && (_jsx(DynamicIcon, { name: link.icon, className: "inline size-3.5 align-[-0.125em]" })), " ", link.title] }, link.url))), _jsx(Banner, {})
57
- ] }), _jsx("div", { className: "lg:hidden ml-auto pr-2", children: _jsx(SidebarTrigger, {}) })
58
- ] }));
59
- return (_jsx(SidebarProvider, { defaultOpen: !!props.withSidebar, children: _jsx(SidebarShell, { withSidebar: props.withSidebar, header: header, children: props.children }) }, props.withSidebar ? "sidebar" : "mini"));
9
+ return (_jsxs(_Fragment, { children: [_jsx(Banner, {}), _jsx(SidebarProvider, { defaultOpen: !!props.withSidebar, children: _jsx(SidebarShell, { withSidebar: props.withSidebar, children: props.children }) }, props.withSidebar ? "sidebar" : "mini")] }));
60
10
  }
61
11
  function SidebarShell(props) {
62
12
  const { isMobile, setOpenMobile } = useSidebar();
@@ -66,9 +16,6 @@ function SidebarShell(props) {
66
16
  if (event.target.closest("a"))
67
17
  setOpenMobile(false);
68
18
  };
69
- return (_jsxs("div", { style: { display: "contents" }, onClick: onClick, children: [
70
- _jsx(Sidebar, { withSidebar: props.withSidebar }), _jsxs(SidebarInset, { children: [props.header, _jsx("main", { className: "flex-1", children: props.children }), _jsx(BackToTop, {})
71
- ] })
72
- ] }));
19
+ return (_jsxs("div", { style: { display: "contents" }, onClick: onClick, children: [_jsx(Sidebar, { withSidebar: props.withSidebar }), _jsxs(SidebarInset, { children: [_jsx(Header, { toggle: props.withSidebar && _jsx(SidebarTrigger, {}), menu: _jsx(SidebarTrigger, {}) }), _jsx("main", { className: "flex-1", children: props.children }), _jsx(BackToTop, {})] })] }));
73
20
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBRTNDLFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFV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LENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FNM0IsQ0FDbkIsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUlyQjtJQUNDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7UUFDMUQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3JCLElBQUssS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUE7SUFDRCxPQUFPLENBQ0wsZUFBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDbkQsS0FBQyxPQUFPLElBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUksRUFDM0MsTUFBQyxZQUFZLGVBQ1YsS0FBSyxDQUFDLE1BQU0sRUFDYixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRztvQkFDQTtZQUNYLENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHtcbiAgY3VycmVudFNlY3Rpb24sXG4gIHNlY3Rpb25GaXJzdEFydGljbGUsXG4gIHNlY3Rpb25GbGF0QXJ0aWNsZXMsXG4gIHNvcnRlZEFydGljbGVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IGFjdGl2ZVNpdGVMaW5rLCBjdXN0b21TZWN0aW9uQWN0aXZlIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFySW5zZXQsXG4gIFNpZGViYXJQcm92aWRlcixcbiAgU2lkZWJhclRyaWdnZXIsXG4gIHVzZVNpZGViYXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBCYWNrVG9Ub3AgfSBmcm9tIFwiLi9CYWNrVG9Ub3AudHN4XCJcbmltcG9ydCB7IEJhbm5lciB9IGZyb20gXCIuL0Jhbm5lci50c3hcIlxuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gXCIuL1NpZGViYXIudHN4XCJcbmltcG9ydCB7IFNpdGVMaW5rIH0gZnJvbSBcIi4vU2l0ZUxpbmsudHN4XCJcbmltcG9ydCB7IFNpdGVUaXRsZSB9IGZyb20gXCIuL1NpdGVUaXRsZS50c3hcIlxuXG5mdW5jdGlvbiBzcGxhdEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IF9zcGxhdDogcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExheW91dChwcm9wczogeyB3aXRoU2lkZWJhcj86IGJvb2xlYW47IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzaXRlTGlua1RhcmdldCA9IGFjdGl2ZVNpdGVMaW5rKHBhdGhuYW1lLCBjb25maWcuc2VjdGlvbnMgPz8gW10pXG5cbiAgdXNlSG90a2V5KFwiSlwiLCAoKSA9PlxuICAgIHdpbmRvdy5zY3JvbGxCeSh7IHRvcDogd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuICB1c2VIb3RrZXkoXCJLXCIsICgpID0+XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiAtd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuXG4gIGNvbnN0IHNlY3Rpb25zID0gY29uZmlnLnNlY3Rpb25zXG5cbiAgY29uc3QgaGVhZGVyID0gKFxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwic3RpY2t5IHRvcC0wIHotMjAgZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBib3JkZXItYiBiZy1iYWNrZ3JvdW5kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHNlbGYtc3RyZXRjaCBwbC00ICR7cHJvcHMud2l0aFNpZGViYXIgPyBcInByLTRcIiA6IFwibGc6cHItMjBcIn1gfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMud2l0aFNpZGViYXIgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXhcIj5cbiAgICAgICAgICAgICAgPFNpZGViYXJUcmlnZ2VyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTaXRlTGluayB0bz17c2l0ZUxpbmtUYXJnZXR9IGNsYXNzTmFtZT1cImxnOmhpZGRlbiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICA8U2l0ZVRpdGxlIC8+XG4gICAgICAgICAgICA8L1NpdGVMaW5rPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxTaXRlTGluayB0bz17c2l0ZUxpbmtUYXJnZXR9IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8U2l0ZVRpdGxlIC8+XG4gICAgICAgICAgPC9TaXRlTGluaz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbGc6ZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC04IHNlbGYtc3RyZXRjaCBweC02IHRleHQtc21cIj5cbiAgICAgICAge3NlY3Rpb25zPy5sZW5ndGggPyAoXG4gICAgICAgICAgc2VjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoc2VjdGlvbiA9PiBzZWN0aW9uLnBvc2l0aW9uID09PSBcImhlYWRlclwiKVxuICAgICAgICAgICAgLm1hcChzZWN0aW9uID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaWNvbiA9IHNlY3Rpb24uaWNvblxuICAgICAgICAgICAgICBpZiAoc2VjdGlvbi50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBjdXN0b21TZWN0aW9uQWN0aXZlKHNlY3Rpb24udXJsLCBwYXRobmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAga2V5PXtzZWN0aW9uLnVybH1cbiAgICAgICAgICAgICAgICAgICAgaHJlZj17cHJlZml4VXJsKHNlY3Rpb24udXJsLCBjb25maWcuYmFzZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHRleHQtZm9yZWdyb3VuZCAke1xuICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiZm9udC1tZWRpdW0gYm9yZGVyLWItMiBib3JkZXItZm9yZWdyb3VuZCBwYi0wLjUgLW1iLTAuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwib3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2ljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2ljb259IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz59XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPntzZWN0aW9uLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVTZWN0aW9uPy5wcmVmaXggPT09IHNlY3Rpb24ucHJlZml4XG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbi50eXBlID09PSBcImJsb2dcIiB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY2hhbmdlbG9nXCJcbiAgICAgICAgICAgICAgICAgID8gc2VjdGlvbi5wcmVmaXhcbiAgICAgICAgICAgICAgICAgIDogc2VjdGlvbkZpcnN0QXJ0aWNsZS5nZXQoc2VjdGlvbi5wcmVmaXgpXG4gICAgICAgICAgICAgIGNvbnN0IGxhdGVzdFZlcnNpb24gPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24udHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIiAmJiBzZWN0aW9uLnZlcnNpb25cbiAgICAgICAgICAgICAgICAgID8gc29ydGVkQXJ0aWNsZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBhID0+IGEucGF0aCA9PT0gc2VjdGlvbkZsYXRBcnRpY2xlcy5nZXQoc2VjdGlvbi5wcmVmaXgpPy5bMF0sXG4gICAgICAgICAgICAgICAgICAgICk/LnRpdGxlXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICBrZXk9e3NlY3Rpb24ucHJlZml4fVxuICAgICAgICAgICAgICAgICAgdG89e3RhcmdldCA9PT0gXCIvXCIgPyBcIi9cIiA6IFwiLyRcIn1cbiAgICAgICAgICAgICAgICAgIHBhcmFtcz17dGFyZ2V0ICYmIHRhcmdldCAhPT0gXCIvXCIgPyBzcGxhdEZvcih0YXJnZXQpIDoge319XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LWZvcmVncm91bmQgJHtcbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiZm9udC1tZWRpdW0gYm9yZGVyLWItMiBib3JkZXItZm9yZWdyb3VuZCBwYi0wLjUgLW1iLTAuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtpY29uICYmIDxEeW5hbWljSWNvbiBuYW1lPXtpY29ufSBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+fVxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICB7bGF0ZXN0VmVyc2lvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwib3BhY2l0eS04MFwiPiAoe2xhdGVzdFZlcnNpb259KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIHRvPVwiL1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgZm9udC1tZWRpdW0gdW5kZXJsaW5lIHVuZGVybGluZS1vZmZzZXQtNFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgRG9jc1xuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKX1cbiAgICAgICAge2NvbmZpZy5saW5rc1xuICAgICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgICAgbGluayA9PlxuICAgICAgICAgICAgICBsaW5rLnBvc2l0aW9uID09PSBcImhlYWRlclwiICYmXG4gICAgICAgICAgICAgICghbGluay5wcmVmaXggfHwgbGluay5wcmVmaXggPT09IGFjdGl2ZVNlY3Rpb24/LnByZWZpeCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAobGluayA9PiAoXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBrZXk9e2xpbmsudXJsfVxuICAgICAgICAgICAgICBocmVmPXtwcmVmaXhVcmwobGluay51cmwsIGNvbmZpZy5iYXNlKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kIG9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xpbmsuaWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgPER5bmFtaWNJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtsaW5rLmljb259XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUgc2l6ZS0zLjUgYWxpZ24tWy0wLjEyNWVtXVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX17XCIgXCJ9XG4gICAgICAgICAgICAgIHtsaW5rLnRpdGxlfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICkpfVxuICAgICAgICA8QmFubmVyIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6aGlkZGVuIG1sLWF1dG8gcHItMlwiPlxuICAgICAgICA8U2lkZWJhclRyaWdnZXIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhclByb3ZpZGVyXG4gICAgICBrZXk9e3Byb3BzLndpdGhTaWRlYmFyID8gXCJzaWRlYmFyXCIgOiBcIm1pbmlcIn1cbiAgICAgIGRlZmF1bHRPcGVuPXshIXByb3BzLndpdGhTaWRlYmFyfVxuICAgID5cbiAgICAgIDxTaWRlYmFyU2hlbGwgd2l0aFNpZGViYXI9e3Byb3BzLndpdGhTaWRlYmFyfSBoZWFkZXI9e2hlYWRlcn0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvU2lkZWJhclNoZWxsPlxuICAgIDwvU2lkZWJhclByb3ZpZGVyPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJTaGVsbChwcm9wczoge1xuICB3aXRoU2lkZWJhcj86IGJvb2xlYW5cbiAgaGVhZGVyOiBSZWFjdC5SZWFjdE5vZGVcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgeyBpc01vYmlsZSwgc2V0T3Blbk1vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG4gIGNvbnN0IG9uQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc01vYmlsZSkgcmV0dXJuXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXCJhXCIpKSBzZXRPcGVuTW9iaWxlKGZhbHNlKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImNvbnRlbnRzXCIgfX0gb25DbGljaz17b25DbGlja30+XG4gICAgICA8U2lkZWJhciB3aXRoU2lkZWJhcj17cHJvcHMud2l0aFNpZGViYXJ9IC8+XG4gICAgICA8U2lkZWJhckluc2V0PlxuICAgICAgICB7cHJvcHMuaGVhZGVyfVxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJmbGV4LTFcIj57cHJvcHMuY2hpbGRyZW59PC9tYWluPlxuICAgICAgICA8QmFja1RvVG9wIC8+XG4gICAgICA8L1NpZGViYXJJbnNldD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWUsQ0FBQTtBQUV2Qyx5RUFBeUU7QUFDekUsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUE0RDtJQUNqRixPQUFPLENBQ0wsOEJBQ0UsS0FBQyxNQUFNLEtBQUcsRUFDVixLQUFDLGVBQWUsSUFFZCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLFlBRWhDLEtBQUMsWUFBWSxJQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxZQUFHLEtBQUssQ0FBQyxRQUFRLEdBQWdCLElBSHhFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUkzQixJQUNqQixDQUNKLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBNEQ7SUFDaEYsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUNoRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQXVDLEVBQUUsRUFBRTtRQUMxRCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU07UUFDckIsSUFBSyxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RFLENBQUMsQ0FBQTtJQUNELE9BQU8sQ0FDTCxlQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxhQUNuRCxLQUFDLE9BQU8sSUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsR0FBSSxFQUMzQyxNQUFDLFlBQVksZUFDWCxLQUFDLE1BQU0sSUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFDLGNBQWMsS0FBRyxFQUMvQyxJQUFJLEVBQUUsS0FBQyxjQUFjLEtBQUcsR0FDeEIsRUFDRixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRyxJQUNBLElBQ1gsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNpZGViYXJJbnNldCxcbiAgU2lkZWJhclByb3ZpZGVyLFxuICBTaWRlYmFyVHJpZ2dlcixcbiAgdXNlU2lkZWJhcixcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcbmltcG9ydCB7IEJhY2tUb1RvcCB9IGZyb20gXCIuL0JhY2tUb1RvcC50c3hcIlxuaW1wb3J0IHsgQmFubmVyIH0gZnJvbSBcIi4vQmFubmVyLnRzeFwiXG5pbXBvcnQgeyBIZWFkZXIgfSBmcm9tIFwiLi9IZWFkZXIudHN4XCJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9TaWRlYmFyLnRzeFwiXG5cbi8qKiBTaXRlIGNocm9tZSBhcm91bmQgYSBwYWdlOiBiYW5uZXIsIGhlYWRlciwgc2lkZWJhciBhbmQgYmFjay10by10b3AgKi9cbmV4cG9ydCBmdW5jdGlvbiBMYXlvdXQocHJvcHM6IHsgd2l0aFNpZGViYXI/OiBib29sZWFuOyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCYW5uZXIgLz5cbiAgICAgIDxTaWRlYmFyUHJvdmlkZXJcbiAgICAgICAga2V5PXtwcm9wcy53aXRoU2lkZWJhciA/IFwic2lkZWJhclwiIDogXCJtaW5pXCJ9XG4gICAgICAgIGRlZmF1bHRPcGVuPXshIXByb3BzLndpdGhTaWRlYmFyfVxuICAgICAgPlxuICAgICAgICA8U2lkZWJhclNoZWxsIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0+e3Byb3BzLmNoaWxkcmVufTwvU2lkZWJhclNoZWxsPlxuICAgICAgPC9TaWRlYmFyUHJvdmlkZXI+XG4gICAgPC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclNoZWxsKHByb3BzOiB7IHdpdGhTaWRlYmFyPzogYm9vbGVhbjsgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzZXRPcGVuTW9iaWxlIH0gPSB1c2VTaWRlYmFyKClcbiAgY29uc3Qgb25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzTW9iaWxlKSByZXR1cm5cbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcImFcIikpIHNldE9wZW5Nb2JpbGUoZmFsc2UpXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9fSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTaWRlYmFyIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0gLz5cbiAgICAgIDxTaWRlYmFySW5zZXQ+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICB0b2dnbGU9e3Byb3BzLndpdGhTaWRlYmFyICYmIDxTaWRlYmFyVHJpZ2dlciAvPn1cbiAgICAgICAgICBtZW51PXs8U2lkZWJhclRyaWdnZXIgLz59XG4gICAgICAgIC8+XG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMVwiPntwcm9wcy5jaGlsZHJlbn08L21haW4+XG4gICAgICAgIDxCYWNrVG9Ub3AgLz5cbiAgICAgIDwvU2lkZWJhckluc2V0PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
@@ -2,6 +2,6 @@
2
2
  export declare function LinkButton(props: {
3
3
  href: string;
4
4
  label: string;
5
- variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link";
5
+ variant?: "default" | "outline" | "secondary" | "ghost" | "positive" | "warning" | "destructive" | "link";
6
6
  size?: "default" | "sm" | "lg";
7
- }): import("react/jsx-runtime").JSX.Element;
7
+ }): import("react").JSX.Element;
@@ -8,4 +8,4 @@ export function LinkButton(props) {
8
8
  size: props.size,
9
9
  }), "no-underline"), children: props.label }));
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlua0J1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0xpbmtCdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUV2QixnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUsxQjtJQUNDLE9BQU8sQ0FDTCxZQUNFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNoQixTQUFTLEVBQUUsRUFBRSxDQUNYLGNBQWMsQ0FBQztZQUNiLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQyxFQUNGLGNBQWMsQ0FDZixZQUVBLEtBQUssQ0FBQyxLQUFLLEdBQ1YsQ0FDTCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1dHRvblZhcmlhbnRzIH0gZnJvbSBcIi4uL2VsZW1lbnRzL2J1dHRvbi50c3hcIlxuaW1wb3J0IHsgY24gfSBmcm9tIFwiY25cIlxuXG4vKiogU3R5bGVkIGxpbmsgYnV0dG9uIHJlbmRlcmVkIGZyb20gOjpidXR0b24gbGVhZiBkaXJlY3RpdmVzICovXG5leHBvcnQgZnVuY3Rpb24gTGlua0J1dHRvbihwcm9wczoge1xuICBocmVmOiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xuICB2YXJpYW50PzogXCJkZWZhdWx0XCIgfCBcIm91dGxpbmVcIiB8IFwic2Vjb25kYXJ5XCIgfCBcImdob3N0XCIgfCBcImRlc3RydWN0aXZlXCIgfCBcImxpbmtcIlxuICBzaXplPzogXCJkZWZhdWx0XCIgfCBcInNtXCIgfCBcImxnXCJcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgaHJlZj17cHJvcHMuaHJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIGJ1dHRvblZhcmlhbnRzKHtcbiAgICAgICAgICB2YXJpYW50OiBwcm9wcy52YXJpYW50LFxuICAgICAgICAgIHNpemU6IHByb3BzLnNpemUsXG4gICAgICAgIH0pLFxuICAgICAgICBcIm5vLXVuZGVybGluZVwiLFxuICAgICAgKX1cbiAgICA+XG4gICAgICB7cHJvcHMubGFiZWx9XG4gICAgPC9hPlxuICApXG59XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlua0J1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0xpbmtCdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUV2QixnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQWExQjtJQUNDLE9BQU8sQ0FDTCxZQUNFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNoQixTQUFTLEVBQUUsRUFBRSxDQUNYLGNBQWMsQ0FBQztZQUNiLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQyxFQUNGLGNBQWMsQ0FDZixZQUVBLEtBQUssQ0FBQyxLQUFLLEdBQ1YsQ0FDTCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1dHRvblZhcmlhbnRzIH0gZnJvbSBcIi4uL2VsZW1lbnRzL2J1dHRvbi50c3hcIlxuaW1wb3J0IHsgY24gfSBmcm9tIFwiY25cIlxuXG4vKiogU3R5bGVkIGxpbmsgYnV0dG9uIHJlbmRlcmVkIGZyb20gOjpidXR0b24gbGVhZiBkaXJlY3RpdmVzICovXG5leHBvcnQgZnVuY3Rpb24gTGlua0J1dHRvbihwcm9wczoge1xuICBocmVmOiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xuICB2YXJpYW50PzpcbiAgICB8IFwiZGVmYXVsdFwiXG4gICAgfCBcIm91dGxpbmVcIlxuICAgIHwgXCJzZWNvbmRhcnlcIlxuICAgIHwgXCJnaG9zdFwiXG4gICAgfCBcInBvc2l0aXZlXCJcbiAgICB8IFwid2FybmluZ1wiXG4gICAgfCBcImRlc3RydWN0aXZlXCJcbiAgICB8IFwibGlua1wiXG4gIHNpemU/OiBcImRlZmF1bHRcIiB8IFwic21cIiB8IFwibGdcIlxufSkge1xuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICBocmVmPXtwcm9wcy5ocmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgYnV0dG9uVmFyaWFudHMoe1xuICAgICAgICAgIHZhcmlhbnQ6IHByb3BzLnZhcmlhbnQsXG4gICAgICAgICAgc2l6ZTogcHJvcHMuc2l6ZSxcbiAgICAgICAgfSksXG4gICAgICAgIFwibm8tdW5kZXJsaW5lXCIsXG4gICAgICApfVxuICAgID5cbiAgICAgIHtwcm9wcy5sYWJlbH1cbiAgICA8L2E+XG4gIClcbn1cbiJdfQ==