fromsrc 0.0.2 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/access.d.ts +7 -7
  2. package/dist/access.js +12 -5
  3. package/dist/adapter.js +8 -16
  4. package/dist/adapterbrowser.js +6 -10
  5. package/dist/adapternext.js +7 -18
  6. package/dist/adapterreactrouter.js +5 -9
  7. package/dist/adapterremix.js +8 -17
  8. package/dist/adaptertanstack.js +6 -10
  9. package/dist/algolia.js +43 -21
  10. package/dist/analytics.d.ts +1 -1
  11. package/dist/analytics.js +16 -10
  12. package/dist/ansi.js +76 -37
  13. package/dist/api.d.ts +10 -10
  14. package/dist/api.js +14 -11
  15. package/dist/audit.d.ts +6 -6
  16. package/dist/audit.js +29 -10
  17. package/dist/autotype.js +20 -10
  18. package/dist/batch.d.ts +6 -6
  19. package/dist/batch.js +16 -9
  20. package/dist/changelog.js +28 -14
  21. package/dist/changelogutil.d.ts +4 -4
  22. package/dist/changelogutil.js +33 -13
  23. package/dist/cli.d.ts +6 -6
  24. package/dist/cli.js +7 -3
  25. package/dist/client.d.ts +1 -1
  26. package/dist/codesample.d.ts +4 -4
  27. package/dist/codesample.js +63 -24
  28. package/dist/collapse.js +31 -13
  29. package/dist/collections.js +36 -16
  30. package/dist/components/accordion.d.ts +1 -1
  31. package/dist/components/accordion.js +5 -1
  32. package/dist/components/alert.d.ts +1 -1
  33. package/dist/components/alert.js +24 -13
  34. package/dist/components/announce.js +40 -17
  35. package/dist/components/autofill.js +18 -8
  36. package/dist/components/avatar.js +4 -4
  37. package/dist/components/avatarstack.js +2 -2
  38. package/dist/components/backtotop.d.ts +1 -1
  39. package/dist/components/backtotop.js +18 -5
  40. package/dist/components/badge.js +9 -4
  41. package/dist/components/banner.js +22 -5
  42. package/dist/components/breadcrumb.js +11 -4
  43. package/dist/components/breadcrumbnav.js +37 -21
  44. package/dist/components/button.js +23 -8
  45. package/dist/components/callout.d.ts +1 -1
  46. package/dist/components/callout.js +35 -31
  47. package/dist/components/changelog.js +21 -8
  48. package/dist/components/checkbox.js +32 -19
  49. package/dist/components/code.d.ts +1 -1
  50. package/dist/components/code.js +6 -3
  51. package/dist/components/codeblock.js +157 -39
  52. package/dist/components/codecopy.d.ts +1 -1
  53. package/dist/components/codecopy.js +36 -13
  54. package/dist/components/codegroup.js +87 -25
  55. package/dist/components/collapsible.d.ts +1 -1
  56. package/dist/components/collapsible.js +5 -1
  57. package/dist/components/command.d.ts +1 -1
  58. package/dist/components/command.js +42 -15
  59. package/dist/components/compare.js +20 -8
  60. package/dist/components/content.js +121 -79
  61. package/dist/components/copybutton.d.ts +1 -1
  62. package/dist/components/copybutton.js +14 -7
  63. package/dist/components/countdown.js +9 -3
  64. package/dist/components/create.js +34 -24
  65. package/dist/components/definition.js +11 -4
  66. package/dist/components/diffview.js +63 -29
  67. package/dist/components/divider.js +5 -1
  68. package/dist/components/docheader.js +8 -1
  69. package/dist/components/doclinkcard.js +27 -3
  70. package/dist/components/dropdown.d.ts +1 -1
  71. package/dist/components/dropdown.js +32 -11
  72. package/dist/components/dynamiccode.js +5 -3
  73. package/dist/components/editlink.js +35 -23
  74. package/dist/components/embed.js +15 -7
  75. package/dist/components/endpoint.d.ts +3 -3
  76. package/dist/components/endpoint.js +24 -9
  77. package/dist/components/errormessage.d.ts +1 -1
  78. package/dist/components/errormessage.js +4 -1
  79. package/dist/components/expandcode.d.ts +1 -1
  80. package/dist/components/expandcode.js +6 -2
  81. package/dist/components/feature.js +8 -1
  82. package/dist/components/featuregrid.d.ts +4 -4
  83. package/dist/components/featuregrid.js +7 -1
  84. package/dist/components/feedback.js +11 -7
  85. package/dist/components/feedbackwidget.js +18 -12
  86. package/dist/components/files.d.ts +1 -1
  87. package/dist/components/files.js +52 -18
  88. package/dist/components/folder.d.ts +1 -1
  89. package/dist/components/folder.js +21 -4
  90. package/dist/components/footer.js +5 -1
  91. package/dist/components/formlabel.d.ts +1 -1
  92. package/dist/components/formlabel.js +31 -18
  93. package/dist/components/github.js +43 -14
  94. package/dist/components/graph.js +38 -14
  95. package/dist/components/heading.js +36 -29
  96. package/dist/components/headingcopy.js +13 -5
  97. package/dist/components/hero.js +20 -14
  98. package/dist/components/highlight.d.ts +2 -2
  99. package/dist/components/highlight.js +14 -8
  100. package/dist/components/hover.d.ts +2 -2
  101. package/dist/components/hover.js +11 -4
  102. package/dist/components/icons.js +4 -1
  103. package/dist/components/inlinetoc.js +3 -1
  104. package/dist/components/input.js +13 -3
  105. package/dist/components/install.js +34 -24
  106. package/dist/components/kbd.js +19 -11
  107. package/dist/components/langicon.d.ts +1 -1
  108. package/dist/components/langicon.js +32 -24
  109. package/dist/components/language.d.ts +1 -1
  110. package/dist/components/language.js +12 -4
  111. package/dist/components/lastupdated.d.ts +2 -2
  112. package/dist/components/lastupdated.js +36 -12
  113. package/dist/components/link.d.ts +1 -1
  114. package/dist/components/linkcard.js +3 -1
  115. package/dist/components/list.d.ts +1 -1
  116. package/dist/components/list.js +4 -1
  117. package/dist/components/math.js +33 -8
  118. package/dist/components/mermaid.js +3 -3
  119. package/dist/components/mobilenav.d.ts +2 -1
  120. package/dist/components/mobilenav.js +116 -47
  121. package/dist/components/modal.d.ts +1 -1
  122. package/dist/components/modal.js +9 -2
  123. package/dist/components/navlink.js +17 -3
  124. package/dist/components/openapi.d.ts +1 -1
  125. package/dist/components/openapi.js +102 -32
  126. package/dist/components/openapischema.d.ts +1 -1
  127. package/dist/components/openapischema.js +29 -9
  128. package/dist/components/openapitags.js +6 -2
  129. package/dist/components/pagetransition.js +5 -3
  130. package/dist/components/pagination.js +5 -4
  131. package/dist/components/panel.js +92 -16
  132. package/dist/components/playground.d.ts +1 -1
  133. package/dist/components/playground.js +153 -50
  134. package/dist/components/popover.js +9 -7
  135. package/dist/components/prelink.js +40 -9
  136. package/dist/components/prevnext.d.ts +1 -1
  137. package/dist/components/prevnext.js +36 -16
  138. package/dist/components/progress.js +2 -2
  139. package/dist/components/property.js +4 -2
  140. package/dist/components/quote.d.ts +2 -2
  141. package/dist/components/quote.js +32 -4
  142. package/dist/components/radio.js +36 -18
  143. package/dist/components/rating.js +14 -3
  144. package/dist/components/recent.d.ts +1 -1
  145. package/dist/components/recent.js +26 -10
  146. package/dist/components/responsive.js +21 -13
  147. package/dist/components/results.js +8 -4
  148. package/dist/components/screenshot.js +61 -21
  149. package/dist/components/scrollprogress.js +9 -5
  150. package/dist/components/scrollspy.d.ts +2 -2
  151. package/dist/components/scrollspy.js +9 -3
  152. package/dist/components/search.js +47 -18
  153. package/dist/components/searchbutton.js +3 -1
  154. package/dist/components/searchdialog.js +36 -23
  155. package/dist/components/searcher.d.ts +1 -1
  156. package/dist/components/searcher.js +51 -26
  157. package/dist/components/select.js +27 -13
  158. package/dist/components/shortcuts.d.ts +1 -1
  159. package/dist/components/shortcuts.js +57 -38
  160. package/dist/components/sidebar.d.ts +2 -1
  161. package/dist/components/sidebar.js +209 -64
  162. package/dist/components/sidebarfilter.d.ts +1 -1
  163. package/dist/components/sidebarfilter.js +33 -9
  164. package/dist/components/sidebarscript.d.ts +5 -0
  165. package/dist/components/sidebarscript.js +5 -0
  166. package/dist/components/skeleton.js +15 -3
  167. package/dist/components/spinner.js +13 -3
  168. package/dist/components/status.js +20 -8
  169. package/dist/components/steps.js +3 -1
  170. package/dist/components/switch.js +4 -4
  171. package/dist/components/table.js +37 -12
  172. package/dist/components/tabnav.d.ts +1 -1
  173. package/dist/components/tabnav.js +48 -36
  174. package/dist/components/tabs.d.ts +1 -1
  175. package/dist/components/tabs.js +56 -40
  176. package/dist/components/tag.js +8 -3
  177. package/dist/components/terminal.js +14 -4
  178. package/dist/components/textarea.js +96 -82
  179. package/dist/components/theme.d.ts +1 -1
  180. package/dist/components/theme.js +26 -4
  181. package/dist/components/themeprovider.d.ts +4 -4
  182. package/dist/components/themeprovider.js +16 -5
  183. package/dist/components/toast.d.ts +1 -1
  184. package/dist/components/toast.js +23 -14
  185. package/dist/components/toc/default.d.ts +1 -1
  186. package/dist/components/toc/default.js +28 -13
  187. package/dist/components/toc/hook.js +28 -14
  188. package/dist/components/toc/index.js +8 -4
  189. package/dist/components/toc/inline.js +12 -2
  190. package/dist/components/toc/minimal.js +11 -5
  191. package/dist/components/toc/zigzag.d.ts +1 -1
  192. package/dist/components/toc/zigzag.js +37 -17
  193. package/dist/components/tocprogress.d.ts +1 -1
  194. package/dist/components/tocprogress.js +66 -34
  195. package/dist/components/tooltip.d.ts +1 -1
  196. package/dist/components/tooltip.js +20 -8
  197. package/dist/components/trigger.js +13 -5
  198. package/dist/components/twoslash.js +49 -26
  199. package/dist/components/typetable.js +23 -4
  200. package/dist/components/typewriter.js +6 -2
  201. package/dist/components/version.js +40 -14
  202. package/dist/components/video.js +25 -15
  203. package/dist/components/zoom.js +6 -2
  204. package/dist/config.d.ts +2 -2
  205. package/dist/config.js +56 -30
  206. package/dist/content.d.ts +5 -5
  207. package/dist/content.js +121 -57
  208. package/dist/contentcache.d.ts +10 -10
  209. package/dist/contentcache.js +9 -5
  210. package/dist/contentdiff.d.ts +4 -4
  211. package/dist/contentdiff.js +16 -8
  212. package/dist/contributors.d.ts +4 -4
  213. package/dist/contributors.js +49 -19
  214. package/dist/diff.d.ts +6 -6
  215. package/dist/diff.js +37 -16
  216. package/dist/draft.d.ts +11 -11
  217. package/dist/draft.js +9 -5
  218. package/dist/env.js +21 -7
  219. package/dist/export.js +4 -4
  220. package/dist/frontmatter.js +11 -9
  221. package/dist/github.js +60 -30
  222. package/dist/gitsource.d.ts +1 -1
  223. package/dist/gitsource.js +16 -9
  224. package/dist/hash.d.ts +6 -6
  225. package/dist/hash.js +19 -7
  226. package/dist/highlight.d.ts +4 -4
  227. package/dist/highlight.js +34 -14
  228. package/dist/hooks/anchor.js +26 -14
  229. package/dist/hooks/arrownav.js +25 -7
  230. package/dist/hooks/async.js +3 -3
  231. package/dist/hooks/battery.js +11 -3
  232. package/dist/hooks/breakpoint.js +10 -2
  233. package/dist/hooks/clickoutside.js +10 -3
  234. package/dist/hooks/clipboard-paste.js +7 -3
  235. package/dist/hooks/clipboard.d.ts +2 -2
  236. package/dist/hooks/clipboard.js +21 -15
  237. package/dist/hooks/copy.js +11 -6
  238. package/dist/hooks/countdown.js +1 -1
  239. package/dist/hooks/counter.js +1 -1
  240. package/dist/hooks/escapekey.js +6 -1
  241. package/dist/hooks/eventlistener.js +3 -1
  242. package/dist/hooks/eventsource.js +4 -2
  243. package/dist/hooks/eyedropper.js +7 -3
  244. package/dist/hooks/favicon.js +1 -1
  245. package/dist/hooks/fetch.js +12 -4
  246. package/dist/hooks/focustrap.js +20 -8
  247. package/dist/hooks/focuswithin.js +6 -2
  248. package/dist/hooks/form.d.ts +2 -2
  249. package/dist/hooks/form.js +15 -2
  250. package/dist/hooks/fullscreen.js +1 -1
  251. package/dist/hooks/geolocation.js +8 -8
  252. package/dist/hooks/hotkeys.js +19 -7
  253. package/dist/hooks/hover.d.ts +4 -1
  254. package/dist/hooks/hover.js +3 -1
  255. package/dist/hooks/idle.js +13 -3
  256. package/dist/hooks/infinitescroll.js +4 -2
  257. package/dist/hooks/interval.js +3 -1
  258. package/dist/hooks/inview.js +7 -3
  259. package/dist/hooks/keyboard.js +36 -12
  260. package/dist/hooks/keypress.js +6 -2
  261. package/dist/hooks/list.js +11 -1
  262. package/dist/hooks/longpress.js +3 -3
  263. package/dist/hooks/map.js +1 -1
  264. package/dist/hooks/measure.js +16 -7
  265. package/dist/hooks/mediarecorder.js +7 -3
  266. package/dist/hooks/networkstate.js +4 -2
  267. package/dist/hooks/os.js +12 -4
  268. package/dist/hooks/pagination.js +6 -4
  269. package/dist/hooks/permission.js +6 -2
  270. package/dist/hooks/queue.js +4 -2
  271. package/dist/hooks/readprogress.js +6 -2
  272. package/dist/hooks/resizeobserver.js +6 -4
  273. package/dist/hooks/script.js +1 -1
  274. package/dist/hooks/scrolllock.js +6 -2
  275. package/dist/hooks/scrollspy.js +4 -2
  276. package/dist/hooks/selection.js +6 -3
  277. package/dist/hooks/share.js +18 -9
  278. package/dist/hooks/speechrecognition.js +7 -3
  279. package/dist/hooks/stepper.js +4 -4
  280. package/dist/hooks/storage.js +9 -3
  281. package/dist/hooks/stylesheet.js +4 -2
  282. package/dist/hooks/textselection.js +6 -3
  283. package/dist/hooks/throttle.js +6 -2
  284. package/dist/hooks/undoredo.js +19 -11
  285. package/dist/hooks/vibrate.js +3 -1
  286. package/dist/hooks/viewtransition.js +8 -4
  287. package/dist/hooks/wakelock.js +12 -7
  288. package/dist/hooks/websocket.js +4 -2
  289. package/dist/hooks/windowsize.js +2 -2
  290. package/dist/i18n.d.ts +2 -2
  291. package/dist/i18n.js +27 -14
  292. package/dist/index.d.ts +1 -0
  293. package/dist/index.js +1 -0
  294. package/dist/lastmodified.js +11 -5
  295. package/dist/linkcheck.d.ts +6 -6
  296. package/dist/linkcheck.js +55 -14
  297. package/dist/llms.js +20 -4
  298. package/dist/manifest.js +7 -7
  299. package/dist/mcp.js +28 -22
  300. package/dist/mdtoc.d.ts +4 -4
  301. package/dist/mdtoc.js +11 -5
  302. package/dist/mdxscope.d.ts +2 -2
  303. package/dist/mdxscope.js +3 -1
  304. package/dist/meta.js +19 -7
  305. package/dist/migrate.js +35 -25
  306. package/dist/navgen.d.ts +8 -8
  307. package/dist/navgen.js +73 -30
  308. package/dist/navtree.d.ts +1 -1
  309. package/dist/navtree.js +39 -19
  310. package/dist/oembed.d.ts +4 -4
  311. package/dist/oembed.js +24 -18
  312. package/dist/ogimage.d.ts +11 -11
  313. package/dist/ogimage.js +24 -24
  314. package/dist/openapi.js +60 -33
  315. package/dist/openapiguard.js +21 -11
  316. package/dist/openapiutil.js +66 -20
  317. package/dist/orama.js +52 -34
  318. package/dist/pipeline.d.ts +4 -4
  319. package/dist/pipeline.js +4 -4
  320. package/dist/preload.d.ts +2 -2
  321. package/dist/preload.js +4 -4
  322. package/dist/ranking.d.ts +6 -6
  323. package/dist/ranking.js +39 -13
  324. package/dist/readtime.js +3 -1
  325. package/dist/redirects.d.ts +2 -2
  326. package/dist/redirects.js +20 -12
  327. package/dist/rehype.js +16 -9
  328. package/dist/rehypeautolink.d.ts +2 -2
  329. package/dist/rehypeautolink.js +25 -23
  330. package/dist/rehypecode.js +38 -28
  331. package/dist/rehypecopy.js +17 -13
  332. package/dist/rehypeinline.js +33 -27
  333. package/dist/rehypelinks.js +28 -20
  334. package/dist/rehyperaw.js +9 -3
  335. package/dist/rehypeslug.d.ts +1 -1
  336. package/dist/rehypeslug.js +23 -19
  337. package/dist/rehypetablewrap.d.ts +2 -2
  338. package/dist/rehypetablewrap.js +9 -5
  339. package/dist/rehypetoc.d.ts +1 -1
  340. package/dist/rehypetoc.js +15 -7
  341. package/dist/remark.js +28 -13
  342. package/dist/remarkadmonition.js +40 -14
  343. package/dist/remarkannotation.d.ts +2 -2
  344. package/dist/remarkannotation.js +26 -10
  345. package/dist/remarkbadge.js +43 -31
  346. package/dist/remarkblockmath.js +29 -15
  347. package/dist/remarkcallout.js +32 -14
  348. package/dist/remarkcaption.js +28 -16
  349. package/dist/remarkcodetitle.js +29 -13
  350. package/dist/remarkcolumns.js +22 -10
  351. package/dist/remarkdetails.js +34 -14
  352. package/dist/remarkdirective.js +47 -20
  353. package/dist/remarkembed.js +38 -22
  354. package/dist/remarkfiletree.js +29 -19
  355. package/dist/remarkfootnote.js +46 -18
  356. package/dist/remarkgfm.js +13 -8
  357. package/dist/remarkheadingid.js +16 -6
  358. package/dist/remarkimage.js +54 -34
  359. package/dist/remarkinclude.js +20 -8
  360. package/dist/remarkinstall.js +20 -12
  361. package/dist/remarklinkcard.js +33 -14
  362. package/dist/remarkmath.js +34 -15
  363. package/dist/remarkmermaid.js +10 -6
  364. package/dist/remarkmeta.d.ts +2 -2
  365. package/dist/remarkmeta.js +15 -5
  366. package/dist/remarkreadingtime.d.ts +2 -2
  367. package/dist/remarkreadingtime.js +3 -1
  368. package/dist/remarksteps.js +26 -14
  369. package/dist/remarkstructure.js +16 -10
  370. package/dist/remarktabs.js +31 -14
  371. package/dist/remarktoc.js +40 -24
  372. package/dist/remarkts2js.js +51 -40
  373. package/dist/remarktwoslash.d.ts +4 -4
  374. package/dist/remarktwoslash.js +24 -14
  375. package/dist/remarkvideo.d.ts +4 -4
  376. package/dist/remarkvideo.js +42 -16
  377. package/dist/schema.d.ts +14 -14
  378. package/dist/schema.js +2 -2
  379. package/dist/search.js +106 -48
  380. package/dist/searchindex.js +86 -34
  381. package/dist/searchpolicy.js +1 -1
  382. package/dist/searchscore.js +5 -5
  383. package/dist/searchtypo.js +30 -10
  384. package/dist/seo.d.ts +2 -2
  385. package/dist/seo.js +14 -14
  386. package/dist/shortcodes.d.ts +4 -4
  387. package/dist/shortcodes.js +25 -20
  388. package/dist/sitemap.js +18 -8
  389. package/dist/snippets.js +26 -18
  390. package/dist/source.js +75 -41
  391. package/dist/stats.d.ts +4 -4
  392. package/dist/stats.js +18 -12
  393. package/dist/testing.d.ts +7 -7
  394. package/dist/testing.js +74 -29
  395. package/dist/themeutil.d.ts +6 -6
  396. package/dist/themeutil.js +145 -27
  397. package/dist/typegen.js +31 -12
  398. package/dist/validate.js +19 -7
  399. package/dist/validator.d.ts +11 -11
  400. package/dist/validator.js +68 -19
  401. package/dist/versioning.d.ts +7 -7
  402. package/dist/versioning.js +27 -11
  403. package/dist/watcher.js +39 -15
  404. package/dist/webhook.d.ts +6 -6
  405. package/dist/webhook.js +34 -12
  406. package/dist/workspace.js +26 -12
  407. package/package.json +137 -137
  408. package/styles/reset.css +1 -1
package/dist/access.d.ts CHANGED
@@ -1,22 +1,22 @@
1
- type AccessRule = {
1
+ interface AccessRule {
2
2
  pattern: string;
3
3
  roles: string[];
4
4
  redirect?: string;
5
- };
6
- type AccessConfig = {
5
+ }
6
+ interface AccessConfig {
7
7
  rules: AccessRule[];
8
8
  defaultAccess?: "public" | "private";
9
- };
10
- type AccessResult = {
9
+ }
10
+ interface AccessResult {
11
11
  allowed: boolean;
12
12
  redirect?: string;
13
13
  requiredRoles?: string[];
14
- };
14
+ }
15
15
  declare function matchPattern(pattern: string, path: string): boolean;
16
16
  declare function mergeRoles(rules: AccessRule[], path: string): string[];
17
17
  declare function createAccess(config: AccessConfig): {
18
- check: (path: string, userRoles: string[]) => AccessResult;
19
18
  addRule: (rule: AccessRule) => void;
19
+ check: (path: string, userRoles: string[]) => AccessResult;
20
20
  getRules: () => AccessRule[];
21
21
  };
22
22
 
package/dist/access.js CHANGED
@@ -5,16 +5,21 @@ function matchPattern(pattern, path) {
5
5
  let si = 0;
6
6
  while (pi < parts.length && si < segments.length) {
7
7
  if (parts[pi] === "**") {
8
- if (pi === parts.length - 1) return true;
8
+ if (pi === parts.length - 1) {
9
+ return true;
10
+ }
9
11
  pi++;
10
12
  while (si < segments.length) {
11
- if (matchPattern(parts.slice(pi).join("/"), segments.slice(si).join("/")))
13
+ if (matchPattern(parts.slice(pi).join("/"), segments.slice(si).join("/"))) {
12
14
  return true;
15
+ }
13
16
  si++;
14
17
  }
15
18
  return false;
16
19
  }
17
- if (parts[pi] !== "*" && parts[pi] !== segments[si]) return false;
20
+ if (parts[pi] !== "*" && parts[pi] !== segments[si]) {
21
+ return false;
22
+ }
18
23
  pi++;
19
24
  si++;
20
25
  }
@@ -24,7 +29,9 @@ function mergeRoles(rules, path) {
24
29
  const roles = /* @__PURE__ */ new Set();
25
30
  for (const rule of rules) {
26
31
  if (matchPattern(rule.pattern, path)) {
27
- for (const role of rule.roles) roles.add(role);
32
+ for (const role of rule.roles) {
33
+ roles.add(role);
34
+ }
28
35
  }
29
36
  }
30
37
  return [...roles];
@@ -48,7 +55,7 @@ function createAccess(config) {
48
55
  function getRules() {
49
56
  return rules;
50
57
  }
51
- return { check, addRule, getRules };
58
+ return { addRule, check, getRules };
52
59
  }
53
60
 
54
61
  export { createAccess, matchPattern, mergeRoles };
package/dist/adapter.js CHANGED
@@ -2,40 +2,32 @@
2
2
  import { createContext, createElement, useContext } from 'react';
3
3
  import { usepath } from './browser';
4
4
 
5
- function defaultLink({
6
- href,
7
- children,
8
- ...rest
9
- }) {
5
+ function defaultLink({ href, children, ...rest }) {
10
6
  return createElement("a", { href, ...rest }, children);
11
7
  }
12
- function defaultImage({
13
- src,
14
- alt,
15
- ...rest
16
- }) {
17
- return createElement("img", { src, alt, ...rest });
8
+ function defaultImage({ src, alt, ...rest }) {
9
+ return createElement("img", { alt, src, ...rest });
18
10
  }
19
11
  function defaultUsePathname() {
20
12
  return usepath();
21
13
  }
22
14
  function defaultUseRouter() {
23
15
  return {
24
- push: (url) => {
16
+ back: () => {
25
17
  if (typeof window !== "undefined") {
26
- window.location.href = url;
18
+ window.history.back();
27
19
  }
28
20
  },
29
- back: () => {
21
+ push: (url) => {
30
22
  if (typeof window !== "undefined") {
31
- window.history.back();
23
+ window.location.href = url;
32
24
  }
33
25
  }
34
26
  };
35
27
  }
36
28
  const defaultAdapter = {
37
- Link: defaultLink,
38
29
  Image: defaultImage,
30
+ Link: defaultLink,
39
31
  usePathname: defaultUsePathname,
40
32
  useRouter: defaultUseRouter
41
33
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { createElement } from 'react';
3
- import { back, push, usepath } from './browser';
3
+ import { push, back, usepath } from './browser';
4
4
 
5
5
  function link({
6
6
  href,
@@ -10,26 +10,22 @@ function link({
10
10
  }) {
11
11
  return createElement("a", { href, ...rest }, children);
12
12
  }
13
- function image({
14
- src,
15
- alt,
16
- ...rest
17
- }) {
18
- return createElement("img", { src, alt, ...rest });
13
+ function image({ src, alt, ...rest }) {
14
+ return createElement("img", { alt, src, ...rest });
19
15
  }
20
16
  function pathname() {
21
17
  return usepath();
22
18
  }
23
19
  function router() {
24
20
  return {
25
- push,
26
- back
21
+ back,
22
+ push
27
23
  };
28
24
  }
29
25
  function createbrowseradapter() {
30
26
  return {
31
- Link: link,
32
27
  Image: image,
28
+ Link: link,
33
29
  usePathname: pathname,
34
30
  useRouter: router
35
31
  };
@@ -4,28 +4,17 @@ import NextLink from 'next/link';
4
4
  import { usePathname, useRouter } from 'next/navigation';
5
5
  import { createElement } from 'react';
6
6
 
7
- function Link({
8
- href,
9
- children,
10
- prefetch,
11
- ...rest
12
- }) {
7
+ function Link({ href, children, prefetch, ...rest }) {
13
8
  return createElement(NextLink, { href, prefetch, ...rest }, children);
14
9
  }
15
- function Image({
16
- src,
17
- alt,
18
- width,
19
- height,
20
- ...rest
21
- }) {
10
+ function Image({ src, alt, width, height, ...rest }) {
22
11
  const nextWidth = Number(width) > 0 ? Number(width) : 1200;
23
12
  const nextHeight = Number(height) > 0 ? Number(height) : 630;
24
13
  return createElement(NextImage, {
25
- src,
26
14
  alt,
27
- width: nextWidth,
28
15
  height: nextHeight,
16
+ src,
17
+ width: nextWidth,
29
18
  ...rest
30
19
  });
31
20
  }
@@ -35,13 +24,13 @@ function useNextPathname() {
35
24
  function useNextRouter() {
36
25
  const router = useRouter();
37
26
  return {
38
- push: (url) => router.push(url),
39
- back: () => router.back()
27
+ back: () => router.back(),
28
+ push: (url) => router.push(url)
40
29
  };
41
30
  }
42
31
  const nextAdapter = {
43
- Link,
44
32
  Image,
33
+ Link,
45
34
  usePathname: useNextPathname,
46
35
  useRouter: useNextRouter
47
36
  };
@@ -10,12 +10,8 @@ function Link({
10
10
  }) {
11
11
  return createElement(Link$1, { to: href, ...rest }, children);
12
12
  }
13
- function Image({
14
- src,
15
- alt,
16
- ...rest
17
- }) {
18
- return createElement("img", { src, alt, ...rest });
13
+ function Image({ src, alt, ...rest }) {
14
+ return createElement("img", { alt, src, ...rest });
19
15
  }
20
16
  function useRouterPathname() {
21
17
  return useLocation().pathname;
@@ -23,13 +19,13 @@ function useRouterPathname() {
23
19
  function useRouterNavigation() {
24
20
  const navigate = useNavigate();
25
21
  return {
26
- push: (url) => navigate(url),
27
- back: () => navigate(-1)
22
+ back: () => navigate(-1),
23
+ push: (url) => navigate(url)
28
24
  };
29
25
  }
30
26
  const reactRouterAdapter = {
31
- Link,
32
27
  Image,
28
+ Link,
33
29
  usePathname: useRouterPathname,
34
30
  useRouter: useRouterNavigation
35
31
  };
@@ -1,25 +1,16 @@
1
1
  "use client";
2
- import { createElement } from 'react';
3
2
  import { Link as Link$1, useLocation, useNavigate } from '@remix-run/react';
3
+ import { createElement } from 'react';
4
4
 
5
- function Link({
6
- href,
7
- children,
8
- prefetch,
9
- ...rest
10
- }) {
5
+ function Link({ href, children, prefetch, ...rest }) {
11
6
  return createElement(
12
7
  Link$1,
13
- { to: href, prefetch: prefetch ? "intent" : "none", ...rest },
8
+ { prefetch: prefetch ? "intent" : "none", to: href, ...rest },
14
9
  children
15
10
  );
16
11
  }
17
- function Image({
18
- src,
19
- alt,
20
- ...rest
21
- }) {
22
- return createElement("img", { src, alt, ...rest });
12
+ function Image({ src, alt, ...rest }) {
13
+ return createElement("img", { alt, src, ...rest });
23
14
  }
24
15
  function useRemixPathname() {
25
16
  return useLocation().pathname;
@@ -27,13 +18,13 @@ function useRemixPathname() {
27
18
  function useRemixRouter() {
28
19
  const navigate = useNavigate();
29
20
  return {
30
- push: (url) => navigate(url),
31
- back: () => navigate(-1)
21
+ back: () => navigate(-1),
22
+ push: (url) => navigate(url)
32
23
  };
33
24
  }
34
25
  const remixAdapter = {
35
- Link,
36
26
  Image,
27
+ Link,
37
28
  usePathname: useRemixPathname,
38
29
  useRouter: useRemixRouter
39
30
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { createElement } from 'react';
3
2
  import { Link as Link$1, useRouterState, useNavigate, useRouter } from '@tanstack/react-router';
3
+ import { createElement } from 'react';
4
4
 
5
5
  function Link({
6
6
  href,
@@ -10,12 +10,8 @@ function Link({
10
10
  }) {
11
11
  return createElement(Link$1, { to: href, ...rest }, children);
12
12
  }
13
- function Image({
14
- src,
15
- alt,
16
- ...rest
17
- }) {
18
- return createElement("img", { src, alt, ...rest });
13
+ function Image({ src, alt, ...rest }) {
14
+ return createElement("img", { alt, src, ...rest });
19
15
  }
20
16
  function useTanstackPathname() {
21
17
  return useRouterState({ select: (state) => state.location.pathname });
@@ -24,13 +20,13 @@ function useTanstackRouter() {
24
20
  const navigate = useNavigate();
25
21
  const router = useRouter();
26
22
  return {
27
- push: (url) => navigate({ to: url }),
28
- back: () => router.history.back()
23
+ back: () => router.history.back(),
24
+ push: (url) => navigate({ to: url })
29
25
  };
30
26
  }
31
27
  const tanstackAdapter = {
32
- Link,
33
28
  Image,
29
+ Link,
34
30
  usePathname: useTanstackPathname,
35
31
  useRouter: useTanstackRouter
36
32
  };
package/dist/algolia.js CHANGED
@@ -6,20 +6,24 @@ function getstring(value) {
6
6
  }
7
7
  function normalize(doc) {
8
8
  return {
9
- slug: doc.slug,
10
- title: doc.title,
11
- description: doc.description,
12
9
  content: doc.content ?? "",
13
- headings: doc.headings
10
+ description: doc.description,
11
+ headings: doc.headings,
12
+ slug: doc.slug,
13
+ title: doc.title
14
14
  };
15
15
  }
16
16
  function fallback(docs, limit) {
17
17
  return docs.slice(0, limit).map((doc) => ({ doc, score: 0 }));
18
18
  }
19
19
  function parsehits(value) {
20
- if (!isrecord(value)) return [];
21
- const hits = value.hits;
22
- if (!Array.isArray(hits)) return [];
20
+ if (!isrecord(value)) {
21
+ return [];
22
+ }
23
+ const { hits } = value;
24
+ if (!Array.isArray(hits)) {
25
+ return [];
26
+ }
23
27
  return hits.filter(isrecord);
24
28
  }
25
29
  function maphit(hit, index, total) {
@@ -30,49 +34,67 @@ function maphit(hit, index, total) {
30
34
  const slug = getstring(hit.slug) ?? getstring(hit.path);
31
35
  const heading = getstring(hit.heading);
32
36
  const title = getstring(hit.title) ?? heading ?? slug;
33
- if (!slug || !title) return null;
37
+ if (!slug || !title) {
38
+ return null;
39
+ }
34
40
  const snippet = getstring(contentmeta?.value) ?? getstring(descriptionmeta?.value) ?? getstring(headingmeta?.value) ?? getstring(hit.description) ?? getstring(hit.content);
35
41
  return {
42
+ anchor: getstring(hit.anchor),
36
43
  doc: normalize({
37
- slug,
38
- title,
44
+ content: getstring(hit.content) ?? "",
39
45
  description: getstring(hit.description),
40
- content: getstring(hit.content) ?? ""
46
+ slug,
47
+ title
41
48
  }),
49
+ heading,
42
50
  score: Math.max(1, total - index),
43
- snippet,
44
- anchor: getstring(hit.anchor),
45
- heading
51
+ snippet
46
52
  };
47
53
  }
48
54
  function createAlgoliaAdapter(config) {
49
55
  const body = {
50
- attributesToRetrieve: config.attributes ?? ["slug", "path", "title", "description", "content", "anchor", "heading"],
56
+ attributesToRetrieve: config.attributes ?? [
57
+ "slug",
58
+ "path",
59
+ "title",
60
+ "description",
61
+ "content",
62
+ "anchor",
63
+ "heading"
64
+ ],
51
65
  attributesToSnippet: ["content:24", "description:18", "heading:18"]
52
66
  };
53
67
  return {
54
68
  async search(query, docs, limit = 8) {
55
69
  const value = query.trim();
56
- if (!value) return fallback(docs, limit);
70
+ if (!value) {
71
+ return fallback(docs, limit);
72
+ }
57
73
  const url = `https://${config.appid}-dsn.algolia.net/1/indexes/${encodeURIComponent(config.index)}/query`;
58
74
  const response = await fetch(url, {
59
- method: "POST",
75
+ body: JSON.stringify({ ...body, hitsPerPage: limit, query: value }),
60
76
  headers: {
61
77
  "content-type": "application/json",
62
78
  "x-algolia-api-key": config.key,
63
79
  "x-algolia-application-id": config.appid
64
80
  },
65
- body: JSON.stringify({ ...body, query: value, hitsPerPage: limit })
81
+ method: "POST"
66
82
  });
67
- if (!response.ok) return [];
83
+ if (!response.ok) {
84
+ return [];
85
+ }
68
86
  const json = await response.json();
69
87
  const hits = parsehits(json);
70
88
  const result = [];
71
89
  for (let i = 0; i < hits.length; i++) {
72
90
  const hit = hits[i];
73
- if (!hit) continue;
91
+ if (!hit) {
92
+ continue;
93
+ }
74
94
  const item = maphit(hit, i, hits.length);
75
- if (item) result.push(item);
95
+ if (item) {
96
+ result.push(item);
97
+ }
76
98
  }
77
99
  return result;
78
100
  }
@@ -21,9 +21,9 @@ interface AnalyticsSummary {
21
21
  totalViews: number;
22
22
  }
23
23
  declare function createAnalytics(config?: AnalyticsConfig): {
24
- track: (event: Omit<AnalyticsEvent, "timestamp">) => void;
25
24
  flush: () => Promise<void>;
26
25
  getQueue: () => AnalyticsEvent[];
26
+ track: (event: Omit<AnalyticsEvent, "timestamp">) => void;
27
27
  };
28
28
  declare function generateScript(config?: AnalyticsConfig): string;
29
29
  declare function aggregateEvents(events: AnalyticsEvent[]): AnalyticsSummary;
package/dist/analytics.js CHANGED
@@ -6,18 +6,24 @@ function createAnalytics(config) {
6
6
  let retries = 0;
7
7
  const maxretries = 5;
8
8
  function track(event) {
9
- if (respectDnt && typeof navigator !== "undefined" && navigator.doNotTrack === "1") return;
10
- if (Math.random() > sampleRate) return;
9
+ if (respectDnt && typeof navigator !== "undefined" && navigator.doNotTrack === "1") {
10
+ return;
11
+ }
12
+ if (Math.random() > sampleRate) {
13
+ return;
14
+ }
11
15
  queue.push({ ...event, timestamp: Date.now() });
12
16
  }
13
17
  async function flush() {
14
- if (queue.length === 0) return;
15
- const batch = queue.splice(0, queue.length);
18
+ if (queue.length === 0) {
19
+ return;
20
+ }
21
+ const batch = queue.splice(0);
16
22
  try {
17
23
  await fetch(endpoint, {
18
- method: "POST",
24
+ body: JSON.stringify(batch),
19
25
  headers: { "Content-Type": "application/json" },
20
- body: JSON.stringify(batch)
26
+ method: "POST"
21
27
  });
22
28
  retries = 0;
23
29
  } catch {
@@ -30,7 +36,7 @@ function createAnalytics(config) {
30
36
  function getQueue() {
31
37
  return [...queue];
32
38
  }
33
- return { track, flush, getQueue };
39
+ return { flush, getQueue, track };
34
40
  }
35
41
  function generateScript(config) {
36
42
  const ep = config?.endpoint ?? "/api/analytics";
@@ -49,13 +55,13 @@ function aggregateEvents(events) {
49
55
  pages.set(event.path, (pages.get(event.path) ?? 0) + 1);
50
56
  }
51
57
  if (event.type === "search" && event.data?.term) {
52
- const term = event.data.term;
58
+ const { term } = event.data;
53
59
  terms.set(term, (terms.get(term) ?? 0) + 1);
54
60
  }
55
61
  }
56
62
  const topPages = [...pages.entries()].map(([path, views]) => ({ path, views })).sort((a, b) => b.views - a.views);
57
- const searchTerms = [...terms.entries()].map(([term, count]) => ({ term, count })).sort((a, b) => b.count - a.count);
58
- return { topPages, searchTerms, totalViews };
63
+ const searchTerms = [...terms.entries()].map(([term, count]) => ({ count, term })).sort((a, b) => b.count - a.count);
64
+ return { searchTerms, topPages, totalViews };
59
65
  }
60
66
 
61
67
  export { aggregateEvents, createAnalytics, generateScript };