fumadocs-core 16.4.0 → 16.4.2

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 (278) hide show
  1. package/dist/advanced-BRT5Ij43.js +80 -0
  2. package/dist/advanced-BRT5Ij43.js.map +1 -0
  3. package/dist/algolia-CBBN8R6-.d.ts +68 -0
  4. package/dist/algolia-CBBN8R6-.d.ts.map +1 -0
  5. package/dist/algolia-CQPXCnjV.js +49 -0
  6. package/dist/algolia-CQPXCnjV.js.map +1 -0
  7. package/dist/breadcrumb.d.ts +29 -27
  8. package/dist/breadcrumb.d.ts.map +1 -0
  9. package/dist/breadcrumb.js +55 -72
  10. package/dist/breadcrumb.js.map +1 -0
  11. package/dist/chunk-B-ezknvj.js +42 -0
  12. package/dist/codeblock-utils-lld8UiQo.d.ts +37 -0
  13. package/dist/codeblock-utils-lld8UiQo.d.ts.map +1 -0
  14. package/dist/content/github.d.ts +43 -32
  15. package/dist/content/github.d.ts.map +1 -0
  16. package/dist/content/github.js +29 -43
  17. package/dist/content/github.js.map +1 -0
  18. package/dist/content/index.d.ts +20 -13
  19. package/dist/content/index.d.ts.map +1 -0
  20. package/dist/content/index.js +17 -23
  21. package/dist/content/index.js.map +1 -0
  22. package/dist/content/mdx/preset-bundler.d.ts +22 -24
  23. package/dist/content/mdx/preset-bundler.d.ts.map +1 -0
  24. package/dist/content/mdx/preset-bundler.js +38 -69
  25. package/dist/content/mdx/preset-bundler.js.map +1 -0
  26. package/dist/content/mdx/preset-runtime.d.ts +22 -24
  27. package/dist/content/mdx/preset-runtime.d.ts.map +1 -0
  28. package/dist/content/mdx/preset-runtime.js +36 -68
  29. package/dist/content/mdx/preset-runtime.js.map +1 -0
  30. package/dist/content/toc.d.ts +7 -6
  31. package/dist/content/toc.d.ts.map +1 -0
  32. package/dist/content/toc.js +15 -19
  33. package/dist/content/toc.js.map +1 -0
  34. package/dist/definitions-DuxDer_c.d.ts +62 -0
  35. package/dist/definitions-DuxDer_c.d.ts.map +1 -0
  36. package/dist/dynamic-link.d.ts +7 -5
  37. package/dist/dynamic-link.d.ts.map +1 -0
  38. package/dist/dynamic-link.js +29 -27
  39. package/dist/dynamic-link.js.map +1 -0
  40. package/dist/fetch-B5e9CFfN.js +20 -0
  41. package/dist/fetch-B5e9CFfN.js.map +1 -0
  42. package/dist/framework/index.d.ts +38 -29
  43. package/dist/framework/index.d.ts.map +1 -0
  44. package/dist/framework/index.js +68 -17
  45. package/dist/framework/index.js.map +1 -0
  46. package/dist/framework/next.d.ts +15 -10
  47. package/dist/framework/next.d.ts.map +1 -0
  48. package/dist/framework/next.js +18 -26
  49. package/dist/framework/next.js.map +1 -0
  50. package/dist/framework/react-router.d.ts +15 -10
  51. package/dist/framework/react-router.d.ts.map +1 -0
  52. package/dist/framework/react-router.js +42 -55
  53. package/dist/framework/react-router.js.map +1 -0
  54. package/dist/framework/tanstack.d.ts +15 -10
  55. package/dist/framework/tanstack.d.ts.map +1 -0
  56. package/dist/framework/tanstack.js +54 -69
  57. package/dist/framework/tanstack.js.map +1 -0
  58. package/dist/framework/waku.d.ts +15 -10
  59. package/dist/framework/waku.d.ts.map +1 -0
  60. package/dist/framework/waku.js +47 -58
  61. package/dist/framework/waku.js.map +1 -0
  62. package/dist/highlight/client.d.ts +6 -7
  63. package/dist/highlight/client.d.ts.map +1 -0
  64. package/dist/highlight/client.js +22 -14
  65. package/dist/highlight/client.js.map +1 -0
  66. package/dist/highlight/index.d.ts +2 -30
  67. package/dist/highlight/index.js +3 -13
  68. package/dist/i18n/index.d.ts +2 -39
  69. package/dist/i18n/index.js +6 -7
  70. package/dist/i18n/index.js.map +1 -0
  71. package/dist/i18n/middleware.d.ts +36 -28
  72. package/dist/i18n/middleware.d.ts.map +1 -0
  73. package/dist/i18n/middleware.js +55 -73
  74. package/dist/i18n/middleware.js.map +1 -0
  75. package/dist/icon-Dt7IObrc.js +19 -0
  76. package/dist/icon-Dt7IObrc.js.map +1 -0
  77. package/dist/index-2U6Tl4--.d.ts +379 -0
  78. package/dist/index-2U6Tl4--.d.ts.map +1 -0
  79. package/dist/index-Bw-DCOra.d.ts +41 -0
  80. package/dist/index-Bw-DCOra.d.ts.map +1 -0
  81. package/dist/link.d.ts +17 -15
  82. package/dist/link.d.ts.map +1 -0
  83. package/dist/link.js +29 -9
  84. package/dist/link.js.map +1 -0
  85. package/dist/mdast-utils-mc9-X-PK.js +40 -0
  86. package/dist/mdast-utils-mc9-X-PK.js.map +1 -0
  87. package/dist/mdx-plugins/codeblock-utils.d.ts +2 -29
  88. package/dist/mdx-plugins/codeblock-utils.js +71 -9
  89. package/dist/mdx-plugins/codeblock-utils.js.map +1 -0
  90. package/dist/mdx-plugins/index.d.ts +15 -20
  91. package/dist/mdx-plugins/index.js +18 -73
  92. package/dist/mdx-plugins/rehype-code.d.ts +2 -55
  93. package/dist/mdx-plugins/rehype-code.js +5 -15
  94. package/dist/mdx-plugins/rehype-toc.d.ts +2 -14
  95. package/dist/mdx-plugins/rehype-toc.js +3 -7
  96. package/dist/mdx-plugins/remark-admonition.d.ts +2 -20
  97. package/dist/mdx-plugins/remark-admonition.js +74 -8
  98. package/dist/mdx-plugins/remark-admonition.js.map +1 -0
  99. package/dist/mdx-plugins/remark-code-tab.d.ts +2 -30
  100. package/dist/mdx-plugins/remark-code-tab.js +183 -7
  101. package/dist/mdx-plugins/remark-code-tab.js.map +1 -0
  102. package/dist/mdx-plugins/remark-directive-admonition.d.ts +2 -27
  103. package/dist/mdx-plugins/remark-directive-admonition.js +60 -7
  104. package/dist/mdx-plugins/remark-directive-admonition.js.map +1 -0
  105. package/dist/mdx-plugins/remark-gfm.d.ts +2 -1
  106. package/dist/mdx-plugins/remark-gfm.js +3 -7
  107. package/dist/mdx-plugins/remark-heading.d.ts +2 -31
  108. package/dist/mdx-plugins/remark-heading.js +45 -8
  109. package/dist/mdx-plugins/remark-heading.js.map +1 -0
  110. package/dist/mdx-plugins/remark-image.d.ts +2 -57
  111. package/dist/mdx-plugins/remark-image.js +192 -7
  112. package/dist/mdx-plugins/remark-image.js.map +1 -0
  113. package/dist/mdx-plugins/remark-mdx-files.d.ts +2 -40
  114. package/dist/mdx-plugins/remark-mdx-files.js +187 -7
  115. package/dist/mdx-plugins/remark-mdx-files.js.map +1 -0
  116. package/dist/mdx-plugins/remark-mdx-mermaid.d.ts +2 -15
  117. package/dist/mdx-plugins/remark-mdx-mermaid.js +31 -7
  118. package/dist/mdx-plugins/remark-mdx-mermaid.js.map +1 -0
  119. package/dist/mdx-plugins/remark-npm.d.ts +2 -31
  120. package/dist/mdx-plugins/remark-npm.js +68 -8
  121. package/dist/mdx-plugins/remark-npm.js.map +1 -0
  122. package/dist/mdx-plugins/remark-steps.d.ts +2 -23
  123. package/dist/mdx-plugins/remark-steps.js +77 -7
  124. package/dist/mdx-plugins/remark-steps.js.map +1 -0
  125. package/dist/mdx-plugins/remark-structure.d.ts +2 -71
  126. package/dist/mdx-plugins/remark-structure.js +105 -11
  127. package/dist/mdx-plugins/remark-structure.js.map +1 -0
  128. package/dist/mixedbread-DlByNYSd.js +88 -0
  129. package/dist/mixedbread-DlByNYSd.js.map +1 -0
  130. package/dist/negotiation/index.d.ts +6 -4
  131. package/dist/negotiation/index.d.ts.map +1 -0
  132. package/dist/negotiation/index.js +41 -11
  133. package/dist/negotiation/index.js.map +1 -0
  134. package/dist/normalize-url-DP9-1I-S.js +16 -0
  135. package/dist/normalize-url-DP9-1I-S.js.map +1 -0
  136. package/dist/orama-cloud-DH3g37zc.js +84 -0
  137. package/dist/orama-cloud-DH3g37zc.js.map +1 -0
  138. package/dist/page-tree/index.d.ts +23 -11
  139. package/dist/page-tree/index.d.ts.map +1 -0
  140. package/dist/page-tree/index.js +3 -17
  141. package/dist/path-DHIjrDBP.js +60 -0
  142. package/dist/path-DHIjrDBP.js.map +1 -0
  143. package/dist/rehype-code-CdiZ1Y6P.js +241 -0
  144. package/dist/rehype-code-CdiZ1Y6P.js.map +1 -0
  145. package/dist/rehype-code-vVWG4-ej.d.ts +58 -0
  146. package/dist/rehype-code-vVWG4-ej.d.ts.map +1 -0
  147. package/dist/rehype-toc-DJvSyE0o.d.ts +18 -0
  148. package/dist/rehype-toc-DJvSyE0o.d.ts.map +1 -0
  149. package/dist/rehype-toc-DVwJcwvA.js +143 -0
  150. package/dist/rehype-toc-DVwJcwvA.js.map +1 -0
  151. package/dist/remark-admonition-DOwBWzsH.d.ts +22 -0
  152. package/dist/remark-admonition-DOwBWzsH.d.ts.map +1 -0
  153. package/dist/remark-code-tab-CXsYlims.d.ts +32 -0
  154. package/dist/remark-code-tab-CXsYlims.d.ts.map +1 -0
  155. package/dist/remark-directive-admonition-BCm_yiU9.d.ts +36 -0
  156. package/dist/remark-directive-admonition-BCm_yiU9.d.ts.map +1 -0
  157. package/dist/remark-gfm-CeWpMwyk.d.ts +2 -0
  158. package/dist/remark-heading-CXvCY0go.d.ts +37 -0
  159. package/dist/remark-heading-CXvCY0go.d.ts.map +1 -0
  160. package/dist/remark-image-CvUis4R1.d.ts +65 -0
  161. package/dist/remark-image-CvUis4R1.d.ts.map +1 -0
  162. package/dist/remark-mdx-files-B31xFFG4.d.ts +56 -0
  163. package/dist/remark-mdx-files-B31xFFG4.d.ts.map +1 -0
  164. package/dist/remark-mdx-mermaid-BdSUUiCG.d.ts +17 -0
  165. package/dist/remark-mdx-mermaid-BdSUUiCG.d.ts.map +1 -0
  166. package/dist/remark-npm-BIvIEKT2.d.ts +36 -0
  167. package/dist/remark-npm-BIvIEKT2.d.ts.map +1 -0
  168. package/dist/remark-steps-CHJN-rtm.d.ts +28 -0
  169. package/dist/remark-steps-CHJN-rtm.d.ts.map +1 -0
  170. package/dist/remark-structure-RZD2gGKp.d.ts +77 -0
  171. package/dist/remark-structure-RZD2gGKp.d.ts.map +1 -0
  172. package/dist/remove-undefined-Cfs4o_mM.js +19 -0
  173. package/dist/remove-undefined-Cfs4o_mM.js.map +1 -0
  174. package/dist/search/algolia.d.ts +3 -69
  175. package/dist/search/algolia.js +69 -63
  176. package/dist/search/algolia.js.map +1 -0
  177. package/dist/search/client.d.ts +120 -114
  178. package/dist/search/client.d.ts.map +1 -0
  179. package/dist/search/client.js +92 -91
  180. package/dist/search/client.js.map +1 -0
  181. package/dist/search/index.d.ts +20 -18
  182. package/dist/search/index.d.ts.map +1 -0
  183. package/dist/search/index.js +3 -7
  184. package/dist/search/orama-cloud.d.ts +70 -68
  185. package/dist/search/orama-cloud.d.ts.map +1 -0
  186. package/dist/search/orama-cloud.js +46 -54
  187. package/dist/search/orama-cloud.js.map +1 -0
  188. package/dist/search/server.d.ts +6 -136
  189. package/dist/search/server.js +292 -369
  190. package/dist/search/server.js.map +1 -0
  191. package/dist/search-D6ChCLhY.js +44 -0
  192. package/dist/search-D6ChCLhY.js.map +1 -0
  193. package/dist/server-CPR_fgkH.d.ts +133 -0
  194. package/dist/server-CPR_fgkH.d.ts.map +1 -0
  195. package/dist/shiki-4oMYwHED.js +80 -0
  196. package/dist/shiki-4oMYwHED.js.map +1 -0
  197. package/dist/shiki-CIBQys54.d.ts +33 -0
  198. package/dist/shiki-CIBQys54.d.ts.map +1 -0
  199. package/dist/source/client/index.d.ts +7 -5
  200. package/dist/source/client/index.d.ts.map +1 -0
  201. package/dist/source/client/index.js +24 -35
  202. package/dist/source/client/index.js.map +1 -0
  203. package/dist/source/index.d.ts +3 -42
  204. package/dist/source/index.js +599 -752
  205. package/dist/source/index.js.map +1 -0
  206. package/dist/source/plugins/lucide-icons.d.ts +7 -7
  207. package/dist/source/plugins/lucide-icons.d.ts.map +1 -0
  208. package/dist/source/plugins/lucide-icons.js +21 -20
  209. package/dist/source/plugins/lucide-icons.js.map +1 -0
  210. package/dist/source/plugins/slugs.d.ts +3 -0
  211. package/dist/source/plugins/slugs.js +65 -0
  212. package/dist/source/plugins/slugs.js.map +1 -0
  213. package/dist/source/schema.d.ts +17 -14
  214. package/dist/source/schema.d.ts.map +1 -0
  215. package/dist/source/schema.js +26 -22
  216. package/dist/source/schema.js.map +1 -0
  217. package/dist/static-Dq8pA8Ay.js +51 -0
  218. package/dist/static-Dq8pA8Ay.js.map +1 -0
  219. package/dist/toc.d.ts +38 -25
  220. package/dist/toc.d.ts.map +1 -0
  221. package/dist/toc.js +123 -136
  222. package/dist/toc.js.map +1 -0
  223. package/dist/util-CK2ykiif.d.ts +8 -0
  224. package/dist/util-CK2ykiif.d.ts.map +1 -0
  225. package/dist/util-s9piKHsk.js +10 -0
  226. package/dist/util-s9piKHsk.js.map +1 -0
  227. package/dist/utils/use-effect-event.d.ts +3 -1
  228. package/dist/utils/use-effect-event.d.ts.map +1 -0
  229. package/dist/utils/use-effect-event.js +16 -13
  230. package/dist/utils/use-effect-event.js.map +1 -0
  231. package/dist/utils/use-media-query.d.ts +3 -1
  232. package/dist/utils/use-media-query.d.ts.map +1 -0
  233. package/dist/utils/use-media-query.js +20 -20
  234. package/dist/utils/use-media-query.js.map +1 -0
  235. package/dist/utils/use-on-change.d.ts +3 -1
  236. package/dist/utils/use-on-change.d.ts.map +1 -0
  237. package/dist/utils/use-on-change.js +23 -7
  238. package/dist/utils/use-on-change.js.map +1 -0
  239. package/dist/utils-DUvi2WkD.js +134 -0
  240. package/dist/utils-DUvi2WkD.js.map +1 -0
  241. package/package.json +60 -58
  242. package/dist/algolia-IZEDLPHE.js +0 -58
  243. package/dist/chunk-5PMI7QDD.js +0 -220
  244. package/dist/chunk-ADBHPKXG.js +0 -78
  245. package/dist/chunk-APKPSBSB.js +0 -74
  246. package/dist/chunk-CH7YHH7V.js +0 -222
  247. package/dist/chunk-EFVXL2PP.js +0 -144
  248. package/dist/chunk-EMWGTXSW.js +0 -19
  249. package/dist/chunk-FAEPKD7U.js +0 -20
  250. package/dist/chunk-FUUVPEA5.js +0 -29
  251. package/dist/chunk-GINBKBVQ.js +0 -12
  252. package/dist/chunk-GLRQBLGN.js +0 -59
  253. package/dist/chunk-JUF4WZ6G.js +0 -117
  254. package/dist/chunk-K4WNLOVQ.js +0 -75
  255. package/dist/chunk-L4JKQWCM.js +0 -131
  256. package/dist/chunk-MA6O2UUE.js +0 -50
  257. package/dist/chunk-ONG4RVCR.js +0 -8
  258. package/dist/chunk-OTD7MV33.js +0 -53
  259. package/dist/chunk-PFNP6PEB.js +0 -11
  260. package/dist/chunk-SH7BNTG7.js +0 -38
  261. package/dist/chunk-TWIDBWFG.js +0 -84
  262. package/dist/chunk-U67V476Y.js +0 -35
  263. package/dist/chunk-VLSDGCJE.js +0 -47
  264. package/dist/chunk-W6WTLKRA.js +0 -73
  265. package/dist/chunk-X2HFD5QJ.js +0 -275
  266. package/dist/chunk-XJ6ZQNEX.js +0 -91
  267. package/dist/chunk-XN2LKXFZ.js +0 -101
  268. package/dist/chunk-XOFXGHS4.js +0 -93
  269. package/dist/chunk-XZSI7AHE.js +0 -67
  270. package/dist/chunk-YVVDKJ2H.js +0 -34
  271. package/dist/chunk-ZMWYLUDP.js +0 -21
  272. package/dist/definitions-pJ7PybYY.d.ts +0 -60
  273. package/dist/fetch-IBTWQCJR.js +0 -22
  274. package/dist/loader-_E2HOdV0.d.ts +0 -333
  275. package/dist/mixedbread-A3WLENES.js +0 -117
  276. package/dist/orama-cloud-UZAPMPFV.js +0 -93
  277. package/dist/static-A2YJ5TXV.js +0 -62
  278. package/dist/util-bZU2QeJ2.d.ts +0 -6
@@ -1,222 +0,0 @@
1
- import {
2
- generateCodeBlockTabs,
3
- parseCodeBlockAttributes
4
- } from "./chunk-TWIDBWFG.js";
5
-
6
- // src/mdx-plugins/remark-code-tab.ts
7
- import { visit } from "unist-util-visit";
8
- var Tabs = {
9
- convert(processor, nodes, withMdx = false, withParent = true) {
10
- const tabs = Array.from(processTabValue(nodes).entries());
11
- if (!withMdx) {
12
- const children2 = tabs.map(([name, codes]) => {
13
- return {
14
- type: "mdxJsxFlowElement",
15
- name: "Tab",
16
- attributes: [
17
- {
18
- type: "mdxJsxAttribute",
19
- name: "value",
20
- value: name
21
- }
22
- ],
23
- children: codes
24
- };
25
- });
26
- if (!withParent) return createFragment(children2);
27
- return {
28
- type: "mdxJsxFlowElement",
29
- name: "Tabs",
30
- attributes: [
31
- {
32
- type: "mdxJsxAttribute",
33
- name: "items",
34
- value: {
35
- type: "mdxJsxAttributeValueExpression",
36
- value: tabs.map(([name]) => name).join(", "),
37
- data: {
38
- estree: {
39
- type: "Program",
40
- sourceType: "module",
41
- comments: [],
42
- body: [
43
- {
44
- type: "ExpressionStatement",
45
- expression: {
46
- type: "ArrayExpression",
47
- elements: tabs.map(([name]) => ({
48
- type: "Literal",
49
- value: name
50
- }))
51
- }
52
- }
53
- ]
54
- }
55
- }
56
- }
57
- }
58
- ],
59
- children: children2
60
- };
61
- }
62
- const children = [
63
- {
64
- type: "mdxJsxFlowElement",
65
- name: "TabsList",
66
- attributes: [],
67
- children: tabs.map(([name]) => ({
68
- type: "mdxJsxFlowElement",
69
- name: "TabsTrigger",
70
- attributes: [
71
- {
72
- type: "mdxJsxAttribute",
73
- name: "value",
74
- value: name
75
- }
76
- ],
77
- children: [mdxToAst(processor, name)]
78
- }))
79
- },
80
- ...tabs.map(
81
- ([name, codes]) => ({
82
- type: "mdxJsxFlowElement",
83
- name: "TabsContent",
84
- attributes: [
85
- {
86
- type: "mdxJsxAttribute",
87
- name: "value",
88
- value: name
89
- }
90
- ],
91
- children: codes
92
- })
93
- )
94
- ];
95
- if (!withParent) return createFragment(children);
96
- return {
97
- type: "mdxJsxFlowElement",
98
- name: "Tabs",
99
- attributes: [
100
- {
101
- type: "mdxJsxAttribute",
102
- name: "defaultValue",
103
- value: tabs[0][0]
104
- }
105
- ],
106
- children
107
- };
108
- }
109
- };
110
- var CodeBlockTabs = {
111
- convert(processor, nodes, withMdx = false, withParent = true) {
112
- const tabs = Array.from(processTabValue(nodes).entries());
113
- const node = generateCodeBlockTabs({
114
- defaultValue: tabs[0][0],
115
- triggers: tabs.map(([name]) => ({
116
- value: name,
117
- children: [
118
- withMdx ? mdxToAst(processor, name) : {
119
- type: "text",
120
- value: name
121
- }
122
- ]
123
- })),
124
- tabs: tabs.map(([name, codes]) => ({
125
- value: name,
126
- children: codes
127
- }))
128
- });
129
- if (!withParent) return createFragment(node.children);
130
- return node;
131
- }
132
- };
133
- var Types = {
134
- CodeBlockTabs,
135
- Tabs
136
- };
137
- function remarkCodeTab(options = {}) {
138
- const { parseMdx = false, Tabs: Tabs2 = "CodeBlockTabs" } = options;
139
- return (tree) => {
140
- const ignored = /* @__PURE__ */ new WeakSet();
141
- visit(tree, (node) => {
142
- if (!("children" in node) || ignored.has(node)) return "skip";
143
- let localTabs = Tabs2;
144
- let localParseMdx = parseMdx;
145
- let withParent = true;
146
- if (node.type === "mdxJsxFlowElement" && node.name && node.name in Types) {
147
- withParent = false;
148
- localTabs = node.name;
149
- if (node.name === "Tabs" && localParseMdx) {
150
- localParseMdx = node.attributes.every(
151
- (attribute) => attribute.type !== "mdxJsxAttribute" || attribute.name !== "items"
152
- );
153
- }
154
- }
155
- let start = -1;
156
- let end = 0;
157
- const close = () => {
158
- if (start === -1 || start === end) return;
159
- const replacement = Types[localTabs].convert(
160
- this,
161
- node.children.slice(start, end),
162
- localParseMdx,
163
- withParent
164
- );
165
- ignored.add(replacement);
166
- node.children.splice(start, end - start, replacement);
167
- end = start;
168
- start = -1;
169
- };
170
- for (; end < node.children.length; end++) {
171
- const child = node.children[end];
172
- if (child.type !== "code" || !child.meta) {
173
- close();
174
- continue;
175
- }
176
- const meta = parseCodeBlockAttributes(child.meta, ["tab"]);
177
- if (!meta.attributes.tab) {
178
- close();
179
- continue;
180
- }
181
- if (start === -1) start = end;
182
- child.meta = meta.rest;
183
- child.data ??= {};
184
- child.data.tab = meta.attributes.tab;
185
- }
186
- close();
187
- });
188
- };
189
- }
190
- function processTabValue(nodes) {
191
- const out = /* @__PURE__ */ new Map();
192
- for (let i = 0; i < nodes.length; i++) {
193
- const node = nodes[i];
194
- const name = node.data?.tab ?? `Tab ${i + 1}`;
195
- const li = out.get(name) ?? [];
196
- li.push(node);
197
- out.set(name, li);
198
- }
199
- return out;
200
- }
201
- function mdxToAst(processor, name) {
202
- const node = processor.parse(name);
203
- if (node.type === "root") {
204
- node.children = node.children.flatMap((child) => {
205
- if (child.type === "paragraph") return child.children;
206
- return child;
207
- });
208
- }
209
- return node;
210
- }
211
- function createFragment(children) {
212
- return {
213
- type: "mdxJsxFlowElement",
214
- name: null,
215
- attributes: [],
216
- children
217
- };
218
- }
219
-
220
- export {
221
- remarkCodeTab
222
- };
@@ -1,144 +0,0 @@
1
- // src/mdx-plugins/rehype-toc.ts
2
- import { toEstree } from "hast-util-to-estree";
3
-
4
- // src/mdx-plugins/hast-utils.ts
5
- function visit(node, tagNames, handler) {
6
- if (node.type === "element" && tagNames.includes(node.tagName)) {
7
- const result = handler(node);
8
- if (result === "skip") return;
9
- }
10
- if ("children" in node)
11
- node.children.forEach((n) => {
12
- visit(n, tagNames, handler);
13
- });
14
- }
15
-
16
- // src/mdx-plugins/rehype-toc.ts
17
- var TocOnlyTag = "[toc]";
18
- var NoTocTag = "[!toc]";
19
- function rehypeToc({ exportToc = true } = {}) {
20
- return (tree) => {
21
- const output = [];
22
- visit(tree, ["h1", "h2", "h3", "h4", "h5", "h6"], (element) => {
23
- const id = element.properties.id;
24
- if (typeof id !== "string") return "skip";
25
- let isTocOnly = false;
26
- const last = element.children.at(-1);
27
- if (last?.type === "text" && last.value.endsWith(TocOnlyTag)) {
28
- isTocOnly = true;
29
- last.value = last.value.substring(0, last.value.length - TocOnlyTag.length).trimEnd();
30
- } else if (last?.type === "text" && last.value.endsWith(NoTocTag)) {
31
- last.value = last.value.substring(0, last.value.length - NoTocTag.length).trimEnd();
32
- return "skip";
33
- }
34
- const estree = toEstree(element, {
35
- elementAttributeNameCase: "react",
36
- stylePropertyNameCase: "dom"
37
- });
38
- if (estree.body[0].type === "ExpressionStatement")
39
- output.push({
40
- title: estree.body[0].expression,
41
- depth: Number(element.tagName.slice(1)),
42
- url: `#${id}`
43
- });
44
- if (isTocOnly) {
45
- Object.assign(element, {
46
- type: "comment",
47
- value: ""
48
- });
49
- }
50
- return "skip";
51
- });
52
- const declaration = {
53
- type: "VariableDeclaration",
54
- kind: "const",
55
- declarations: [
56
- {
57
- type: "VariableDeclarator",
58
- id: {
59
- type: "Identifier",
60
- name: "toc"
61
- },
62
- init: {
63
- type: "ArrayExpression",
64
- elements: output.map((item) => ({
65
- type: "ObjectExpression",
66
- properties: [
67
- {
68
- type: "Property",
69
- method: false,
70
- shorthand: false,
71
- computed: false,
72
- key: {
73
- type: "Identifier",
74
- name: "depth"
75
- },
76
- value: {
77
- type: "Literal",
78
- value: item.depth
79
- },
80
- kind: "init"
81
- },
82
- {
83
- type: "Property",
84
- method: false,
85
- shorthand: false,
86
- computed: false,
87
- key: {
88
- type: "Identifier",
89
- name: "url"
90
- },
91
- value: {
92
- type: "Literal",
93
- value: item.url
94
- },
95
- kind: "init"
96
- },
97
- {
98
- type: "Property",
99
- method: false,
100
- shorthand: false,
101
- computed: false,
102
- key: {
103
- type: "Identifier",
104
- name: "title"
105
- },
106
- value: {
107
- type: "JSXFragment",
108
- openingFragment: { type: "JSXOpeningFragment" },
109
- closingFragment: { type: "JSXClosingFragment" },
110
- children: item.title.children
111
- },
112
- kind: "init"
113
- }
114
- ]
115
- }))
116
- }
117
- }
118
- ]
119
- };
120
- tree.children.push({
121
- type: "mdxjsEsm",
122
- value: "",
123
- data: {
124
- estree: {
125
- type: "Program",
126
- body: [
127
- exportToc ? {
128
- type: "ExportNamedDeclaration",
129
- declaration,
130
- attributes: [],
131
- specifiers: []
132
- } : declaration
133
- ],
134
- sourceType: "module",
135
- comments: []
136
- }
137
- }
138
- });
139
- };
140
- }
141
-
142
- export {
143
- rehypeToc
144
- };
@@ -1,19 +0,0 @@
1
- // src/utils/use-on-change.ts
2
- import { useState } from "react";
3
- function isDifferent(a, b) {
4
- if (Array.isArray(a) && Array.isArray(b)) {
5
- return b.length !== a.length || a.some((v, i) => isDifferent(v, b[i]));
6
- }
7
- return a !== b;
8
- }
9
- function useOnChange(value, onChange, isUpdated = isDifferent) {
10
- const [prev, setPrev] = useState(value);
11
- if (isUpdated(prev, value)) {
12
- onChange(value, prev);
13
- setPrev(value);
14
- }
15
- }
16
-
17
- export {
18
- useOnChange
19
- };
@@ -1,20 +0,0 @@
1
- // src/source/plugins/icon.ts
2
- function iconPlugin(resolveIcon) {
3
- function replaceIcon(node) {
4
- if (node.icon === void 0 || typeof node.icon === "string")
5
- node.icon = resolveIcon(node.icon);
6
- return node;
7
- }
8
- return {
9
- name: "fumadocs:icon",
10
- transformPageTree: {
11
- file: replaceIcon,
12
- folder: replaceIcon,
13
- separator: replaceIcon
14
- }
15
- };
16
- }
17
-
18
- export {
19
- iconPlugin
20
- };
@@ -1,29 +0,0 @@
1
- // src/mdx-plugins/remark-mdx-mermaid.ts
2
- import { visit } from "unist-util-visit";
3
- function toMDX(code) {
4
- return {
5
- type: "mdxJsxFlowElement",
6
- name: "Mermaid",
7
- attributes: [
8
- {
9
- type: "mdxJsxAttribute",
10
- name: "chart",
11
- value: code.trim()
12
- }
13
- ],
14
- children: []
15
- };
16
- }
17
- function remarkMdxMermaid(options = {}) {
18
- const { lang = "mermaid" } = options;
19
- return (tree) => {
20
- visit(tree, "code", (node) => {
21
- if (node.lang !== lang || !node.value) return;
22
- Object.assign(node, toMDX(node.value));
23
- });
24
- };
25
- }
26
-
27
- export {
28
- remarkMdxMermaid
29
- };
@@ -1,12 +0,0 @@
1
- // src/content/mdx/util.ts
2
- async function resolvePlugins(def, options = []) {
3
- const list = (await Promise.all(def(Array.isArray(options) ? options : []))).filter((v) => v !== false);
4
- if (typeof options === "function") {
5
- return Promise.all(options(list));
6
- }
7
- return list;
8
- }
9
-
10
- export {
11
- resolvePlugins
12
- };
@@ -1,59 +0,0 @@
1
- import {
2
- generateCodeBlockTabs
3
- } from "./chunk-TWIDBWFG.js";
4
-
5
- // src/mdx-plugins/remark-npm.ts
6
- import { visit } from "unist-util-visit";
7
- import convert from "npm-to-yarn";
8
- var aliases = ["npm", "package-install"];
9
- function remarkNpm({
10
- persist = false,
11
- packageManagers = [
12
- { command: (cmd) => convert(cmd, "npm"), name: "npm" },
13
- { command: (cmd) => convert(cmd, "pnpm"), name: "pnpm" },
14
- { command: (cmd) => convert(cmd, "yarn"), name: "yarn" },
15
- { command: (cmd) => convert(cmd, "bun"), name: "bun" }
16
- ]
17
- } = {}) {
18
- return (tree) => {
19
- visit(tree, "code", (node) => {
20
- if (!node.lang || !aliases.includes(node.lang)) return;
21
- let code = node.value;
22
- if (node.lang === "package-install" && !code.startsWith("npm") && !code.startsWith("npx")) {
23
- code = `npm install ${code}`;
24
- }
25
- const options = {
26
- persist,
27
- tabs: [],
28
- triggers: []
29
- };
30
- for (const manager of packageManagers) {
31
- const value = manager.value ?? manager.name;
32
- const command = manager.command(code);
33
- if (!command || command.length === 0) continue;
34
- options.defaultValue ??= value;
35
- options.triggers.push({
36
- value,
37
- children: [{ type: "text", value: manager.name }]
38
- });
39
- options.tabs.push({
40
- value,
41
- children: [
42
- {
43
- type: "code",
44
- lang: "bash",
45
- meta: node.meta,
46
- value: command
47
- }
48
- ]
49
- });
50
- }
51
- Object.assign(node, generateCodeBlockTabs(options));
52
- return "skip";
53
- });
54
- };
55
- }
56
-
57
- export {
58
- remarkNpm
59
- };
@@ -1,117 +0,0 @@
1
- import {
2
- flattenNode,
3
- toMdxExport
4
- } from "./chunk-VLSDGCJE.js";
5
-
6
- // src/mdx-plugins/remark-structure.ts
7
- import Slugger from "github-slugger";
8
- import { remark } from "remark";
9
- import remarkGfm from "remark-gfm";
10
- import { visit } from "unist-util-visit";
11
- var remarkStructureDefaultOptions = {
12
- types: [
13
- "heading",
14
- "paragraph",
15
- "blockquote",
16
- "tableCell",
17
- "mdxJsxFlowElement"
18
- ],
19
- allowedMdxAttributes: (node) => {
20
- if (!node.name) return false;
21
- return ["TypeTable", "Callout"].includes(node.name);
22
- },
23
- exportAs: false
24
- };
25
- function remarkStructure({
26
- types = remarkStructureDefaultOptions.types,
27
- allowedMdxAttributes = remarkStructureDefaultOptions.allowedMdxAttributes,
28
- exportAs = remarkStructureDefaultOptions.exportAs
29
- } = {}) {
30
- const slugger = new Slugger();
31
- if (Array.isArray(allowedMdxAttributes)) {
32
- const arr = allowedMdxAttributes;
33
- allowedMdxAttributes = (_node, attribute) => attribute.type === "mdxJsxAttribute" && arr.includes(attribute.name);
34
- }
35
- if (Array.isArray(types)) {
36
- const arr = types;
37
- types = (node) => arr.includes(node.type);
38
- }
39
- return (tree, file) => {
40
- slugger.reset();
41
- const data = { contents: [], headings: [] };
42
- let lastHeading;
43
- if (file.data.frontmatter) {
44
- const frontmatter = file.data.frontmatter;
45
- if (frontmatter._openapi?.structuredData) {
46
- data.headings.push(...frontmatter._openapi.structuredData.headings);
47
- data.contents.push(...frontmatter._openapi.structuredData.contents);
48
- }
49
- }
50
- visit(tree, (element) => {
51
- if (element.type === "root" || !types(element)) return;
52
- if (element.type === "heading") {
53
- element.data ||= {};
54
- element.data.hProperties ||= {};
55
- const properties = element.data.hProperties;
56
- const content2 = flattenNode(element).trim();
57
- const id = properties.id ?? slugger.slug(content2);
58
- data.headings.push({
59
- id,
60
- content: content2
61
- });
62
- lastHeading = id;
63
- return "skip";
64
- }
65
- if (element.data?._string) {
66
- for (const content2 of element.data._string) {
67
- data.contents.push({
68
- heading: lastHeading,
69
- content: content2
70
- });
71
- }
72
- return "skip";
73
- }
74
- if (element.type === "mdxJsxFlowElement" && element.name) {
75
- data.contents.push(
76
- ...element.attributes.flatMap((attribute) => {
77
- const value = typeof attribute.value === "string" ? attribute.value : attribute.value?.value;
78
- if (!value || value.length === 0) return [];
79
- if (allowedMdxAttributes && !allowedMdxAttributes(element, attribute))
80
- return [];
81
- return {
82
- heading: lastHeading,
83
- content: attribute.type === "mdxJsxAttribute" ? `${attribute.name}: ${value}` : value
84
- };
85
- })
86
- );
87
- return;
88
- }
89
- const content = flattenNode(element).trim();
90
- if (content.length === 0) return;
91
- data.contents.push({
92
- heading: lastHeading,
93
- content
94
- });
95
- return "skip";
96
- });
97
- file.data.structuredData = data;
98
- if (exportAs) {
99
- tree.children.unshift(
100
- toMdxExport(
101
- typeof exportAs === "string" ? exportAs : "structuredData",
102
- data
103
- )
104
- );
105
- }
106
- };
107
- }
108
- function structure(content, remarkPlugins = [], options = {}) {
109
- const result = remark().use(remarkGfm).use(remarkPlugins).use(remarkStructure, options).processSync(content);
110
- return result.data.structuredData;
111
- }
112
-
113
- export {
114
- remarkStructureDefaultOptions,
115
- remarkStructure,
116
- structure
117
- };
@@ -1,75 +0,0 @@
1
- // src/framework/index.tsx
2
- import { createContext, use, useMemo } from "react";
3
- import { jsx } from "react/jsx-runtime";
4
- var notImplemented = () => {
5
- throw new Error(
6
- "You need to wrap your application inside `FrameworkProvider`."
7
- );
8
- };
9
- var FrameworkContext = createContext({
10
- useParams: notImplemented,
11
- useRouter: notImplemented,
12
- usePathname: notImplemented
13
- });
14
- function FrameworkProvider({
15
- Link: Link2,
16
- useRouter: useRouter2,
17
- useParams: useParams2,
18
- usePathname: usePathname2,
19
- Image: Image2,
20
- children
21
- }) {
22
- const framework = useMemo(
23
- () => ({
24
- usePathname: usePathname2,
25
- useRouter: useRouter2,
26
- Link: Link2,
27
- Image: Image2,
28
- useParams: useParams2
29
- }),
30
- [Link2, usePathname2, useRouter2, useParams2, Image2]
31
- );
32
- return /* @__PURE__ */ jsx(FrameworkContext, { value: framework, children });
33
- }
34
- function usePathname() {
35
- return use(FrameworkContext).usePathname();
36
- }
37
- function useRouter() {
38
- return use(FrameworkContext).useRouter();
39
- }
40
- function useParams() {
41
- return use(FrameworkContext).useParams();
42
- }
43
- function Image(props) {
44
- const { Image: Image2 } = use(FrameworkContext);
45
- if (!Image2) {
46
- const { src, alt, priority, ...rest } = props;
47
- return /* @__PURE__ */ jsx(
48
- "img",
49
- {
50
- alt,
51
- src,
52
- fetchPriority: priority ? "high" : "auto",
53
- ...rest
54
- }
55
- );
56
- }
57
- return /* @__PURE__ */ jsx(Image2, { ...props });
58
- }
59
- function Link(props) {
60
- const { Link: Link2 } = use(FrameworkContext);
61
- if (!Link2) {
62
- const { href, prefetch: _, ...rest } = props;
63
- return /* @__PURE__ */ jsx("a", { href, ...rest });
64
- }
65
- return /* @__PURE__ */ jsx(Link2, { ...props });
66
- }
67
-
68
- export {
69
- FrameworkProvider,
70
- usePathname,
71
- useRouter,
72
- useParams,
73
- Image,
74
- Link
75
- };