fumadocs-core 16.4.5 → 16.4.7

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 (187) hide show
  1. package/dist/{advanced-DSlc7qa9.js → advanced-tbtFDsHU.js} +3 -3
  2. package/dist/advanced-tbtFDsHU.js.map +1 -0
  3. package/dist/{algolia-FqjcaTcD.d.ts → algolia-BFVpYDZ_.d.ts} +2 -2
  4. package/dist/{algolia-FqjcaTcD.d.ts.map → algolia-BFVpYDZ_.d.ts.map} +1 -1
  5. package/dist/{algolia-BGWM-DkQ.js → algolia-Dbt0kj8j.js} +2 -2
  6. package/dist/algolia-Dbt0kj8j.js.map +1 -0
  7. package/dist/breadcrumb.d.ts +1 -1
  8. package/dist/breadcrumb.js +2 -2
  9. package/dist/breadcrumb.js.map +1 -1
  10. package/dist/{codeblock-utils-Dh1w8ICD.d.ts → codeblock-utils-CdA7nXLP.d.ts} +1 -1
  11. package/dist/{codeblock-utils-Dh1w8ICD.d.ts.map → codeblock-utils-CdA7nXLP.d.ts.map} +1 -1
  12. package/dist/content/mdx/preset-bundler.d.ts +8 -8
  13. package/dist/content/mdx/preset-bundler.js +1 -1
  14. package/dist/content/mdx/preset-runtime.d.ts +8 -8
  15. package/dist/content/mdx/preset-runtime.js +1 -1
  16. package/dist/content/toc.js +1 -1
  17. package/dist/{definitions-DJAPG-2U.d.ts → definitions-Ca2P2viV.d.ts} +1 -1
  18. package/dist/{definitions-DJAPG-2U.d.ts.map → definitions-Ca2P2viV.d.ts.map} +1 -1
  19. package/dist/{fetch-B1nmMSyw.js → fetch-CiphcAUR.js} +1 -1
  20. package/dist/{fetch-B1nmMSyw.js.map → fetch-CiphcAUR.js.map} +1 -1
  21. package/dist/framework/index.d.ts +4 -4
  22. package/dist/framework/next.d.ts +2 -2
  23. package/dist/framework/react-router.d.ts +2 -2
  24. package/dist/framework/react-router.js.map +1 -1
  25. package/dist/framework/tanstack.d.ts +2 -2
  26. package/dist/framework/tanstack.js.map +1 -1
  27. package/dist/framework/waku.d.ts +2 -2
  28. package/dist/framework/waku.js.map +1 -1
  29. package/dist/highlight/client.d.ts +1 -1
  30. package/dist/highlight/client.js +1 -1
  31. package/dist/highlight/client.js.map +1 -1
  32. package/dist/highlight/index.d.ts +1 -1
  33. package/dist/highlight/index.js +1 -1
  34. package/dist/i18n/index.d.ts +1 -1
  35. package/dist/i18n/middleware.d.ts +1 -1
  36. package/dist/i18n/middleware.js.map +1 -1
  37. package/dist/{icon-5lVe3l-0.js → icon-CL3r1pNG.js} +1 -1
  38. package/dist/{icon-5lVe3l-0.js.map → icon-CL3r1pNG.js.map} +1 -1
  39. package/dist/index-BaMZ8PEK.d.ts +45 -0
  40. package/dist/index-BaMZ8PEK.d.ts.map +1 -0
  41. package/dist/index-CmGSoB4T.d.ts +18 -0
  42. package/dist/index-CmGSoB4T.d.ts.map +1 -0
  43. package/dist/{index-BhVrX5J1.d.ts → index-DxhhLscI.d.ts} +1 -1
  44. package/dist/{index-BhVrX5J1.d.ts.map → index-DxhhLscI.d.ts.map} +1 -1
  45. package/dist/{index-Co_C8NEi.d.ts → index-aE27-b16.d.ts} +5 -4
  46. package/dist/index-aE27-b16.d.ts.map +1 -0
  47. package/dist/{mdast-utils-ix4DsXJP.js → mdast-utils-B8O-41y4.js} +1 -1
  48. package/dist/{mdast-utils-ix4DsXJP.js.map → mdast-utils-B8O-41y4.js.map} +1 -1
  49. package/dist/mdx-plugins/codeblock-utils.d.ts +1 -1
  50. package/dist/mdx-plugins/codeblock-utils.js.map +1 -1
  51. package/dist/mdx-plugins/index.d.ts +16 -15
  52. package/dist/mdx-plugins/index.js +6 -5
  53. package/dist/mdx-plugins/rehype-code.d.ts +1 -1
  54. package/dist/mdx-plugins/rehype-code.js +2 -2
  55. package/dist/mdx-plugins/rehype-toc.d.ts +1 -1
  56. package/dist/mdx-plugins/rehype-toc.js +1 -1
  57. package/dist/mdx-plugins/remark-admonition.d.ts +1 -1
  58. package/dist/mdx-plugins/remark-admonition.js +1 -1
  59. package/dist/mdx-plugins/remark-code-tab.d.ts +1 -1
  60. package/dist/mdx-plugins/remark-code-tab.js.map +1 -1
  61. package/dist/mdx-plugins/remark-directive-admonition.d.ts +1 -1
  62. package/dist/mdx-plugins/remark-directive-admonition.js.map +1 -1
  63. package/dist/mdx-plugins/remark-feedback-block.d.ts +2 -0
  64. package/dist/mdx-plugins/remark-feedback-block.js +48 -0
  65. package/dist/mdx-plugins/remark-feedback-block.js.map +1 -0
  66. package/dist/mdx-plugins/remark-gfm.d.ts +1 -1
  67. package/dist/mdx-plugins/remark-heading.d.ts +1 -1
  68. package/dist/mdx-plugins/remark-heading.js +1 -1
  69. package/dist/mdx-plugins/remark-heading.js.map +1 -1
  70. package/dist/mdx-plugins/remark-image.d.ts +1 -1
  71. package/dist/mdx-plugins/remark-image.js.map +1 -1
  72. package/dist/mdx-plugins/remark-mdx-files.d.ts +1 -1
  73. package/dist/mdx-plugins/remark-mdx-files.js.map +1 -1
  74. package/dist/mdx-plugins/remark-mdx-mermaid.d.ts +1 -1
  75. package/dist/mdx-plugins/remark-npm.d.ts +1 -1
  76. package/dist/mdx-plugins/remark-npm.js.map +1 -1
  77. package/dist/mdx-plugins/remark-steps.d.ts +1 -1
  78. package/dist/mdx-plugins/remark-steps.js.map +1 -1
  79. package/dist/mdx-plugins/remark-structure.d.ts +1 -1
  80. package/dist/mdx-plugins/remark-structure.js +1 -1
  81. package/dist/mdx-plugins/remark-structure.js.map +1 -1
  82. package/dist/{mixedbread-DSiQfUnN.js → mixedbread-CPGJEgwq.js} +3 -3
  83. package/dist/mixedbread-CPGJEgwq.js.map +1 -0
  84. package/dist/negotiation/index.js.map +1 -1
  85. package/dist/{normalize-url-3WQZ_H_j.js → normalize-url-CEfNKxaE.js} +1 -1
  86. package/dist/{normalize-url-3WQZ_H_j.js.map → normalize-url-CEfNKxaE.js.map} +1 -1
  87. package/dist/{orama-cloud-legacy-CRZzZXWn.js → orama-cloud-legacy-NJTbB19B.js} +3 -3
  88. package/dist/orama-cloud-legacy-NJTbB19B.js.map +1 -0
  89. package/dist/{orama-cloud-BMDBfk05.js → orama-cloud-yicpgD0c.js} +3 -3
  90. package/dist/orama-cloud-yicpgD0c.js.map +1 -0
  91. package/dist/page-tree/index.d.ts +3 -45
  92. package/dist/page-tree/index.js +1 -1
  93. package/dist/{path-D6M0ZQvO.js → path-CECfI3nn.js} +2 -2
  94. package/dist/{path-D6M0ZQvO.js.map → path-CECfI3nn.js.map} +1 -1
  95. package/dist/{rehype-code-Bd52chOe.d.ts → rehype-code-BUrju-yF.d.ts} +1 -1
  96. package/dist/{rehype-code-Bd52chOe.d.ts.map → rehype-code-BUrju-yF.d.ts.map} +1 -1
  97. package/dist/{rehype-code-j8FAEnuU.js → rehype-code-Ct5Pb6BZ.js} +2 -2
  98. package/dist/rehype-code-Ct5Pb6BZ.js.map +1 -0
  99. package/dist/{rehype-toc-Dqgey2tW.js → rehype-toc-CTG0x7La.js} +1 -1
  100. package/dist/rehype-toc-CTG0x7La.js.map +1 -0
  101. package/dist/{rehype-toc-BJVsblvp.d.ts → rehype-toc-Dcgzd_Vy.d.ts} +1 -1
  102. package/dist/{rehype-toc-BJVsblvp.d.ts.map → rehype-toc-Dcgzd_Vy.d.ts.map} +1 -1
  103. package/dist/{remark-admonition-Chku_iWO.d.ts → remark-admonition-BvgS4oU1.d.ts} +1 -1
  104. package/dist/{remark-admonition-Chku_iWO.d.ts.map → remark-admonition-BvgS4oU1.d.ts.map} +1 -1
  105. package/dist/{remark-code-tab-C0f6BPcw.d.ts → remark-code-tab-Ds_BdYXz.d.ts} +1 -1
  106. package/dist/{remark-code-tab-C0f6BPcw.d.ts.map → remark-code-tab-Ds_BdYXz.d.ts.map} +1 -1
  107. package/dist/{remark-directive-admonition-CBwJdh9z.d.ts → remark-directive-admonition-02cR5K1L.d.ts} +1 -1
  108. package/dist/{remark-directive-admonition-CBwJdh9z.d.ts.map → remark-directive-admonition-02cR5K1L.d.ts.map} +1 -1
  109. package/dist/remark-feedback-block-fAyt4LdQ.d.ts +52 -0
  110. package/dist/remark-feedback-block-fAyt4LdQ.d.ts.map +1 -0
  111. package/dist/{remark-heading-CUAe4zIu.d.ts → remark-heading-CSButCYt.d.ts} +1 -1
  112. package/dist/{remark-heading-CUAe4zIu.d.ts.map → remark-heading-CSButCYt.d.ts.map} +1 -1
  113. package/dist/{remark-image-DMRnxsRO.d.ts → remark-image-C3MnP-3r.d.ts} +1 -1
  114. package/dist/{remark-image-DMRnxsRO.d.ts.map → remark-image-C3MnP-3r.d.ts.map} +1 -1
  115. package/dist/{remark-mdx-files-B5KMXnfh.d.ts → remark-mdx-files-BXUiiX3M.d.ts} +1 -1
  116. package/dist/{remark-mdx-files-B5KMXnfh.d.ts.map → remark-mdx-files-BXUiiX3M.d.ts.map} +1 -1
  117. package/dist/{remark-mdx-mermaid-C_4W5gfj.d.ts → remark-mdx-mermaid-C5ZBxx8x.d.ts} +1 -1
  118. package/dist/{remark-mdx-mermaid-C_4W5gfj.d.ts.map → remark-mdx-mermaid-C5ZBxx8x.d.ts.map} +1 -1
  119. package/dist/{remark-npm-CykFgJn2.d.ts → remark-npm-DADZg0pf.d.ts} +1 -1
  120. package/dist/{remark-npm-CykFgJn2.d.ts.map → remark-npm-DADZg0pf.d.ts.map} +1 -1
  121. package/dist/{remark-steps-5-DmLVv3.d.ts → remark-steps-CWEE34cT.d.ts} +1 -1
  122. package/dist/{remark-steps-5-DmLVv3.d.ts.map → remark-steps-CWEE34cT.d.ts.map} +1 -1
  123. package/dist/{remark-structure-CszwnaMR.d.ts → remark-structure-ChKxMXnK.d.ts} +1 -1
  124. package/dist/{remark-structure-CszwnaMR.d.ts.map → remark-structure-ChKxMXnK.d.ts.map} +1 -1
  125. package/dist/{remove-undefined-B7zJF-YS.js → remove-undefined-Buxsprgu.js} +1 -1
  126. package/dist/{remove-undefined-B7zJF-YS.js.map → remove-undefined-Buxsprgu.js.map} +1 -1
  127. package/dist/search/algolia.d.ts +2 -2
  128. package/dist/search/algolia.js.map +1 -1
  129. package/dist/search/client.d.ts +7 -5
  130. package/dist/search/client.d.ts.map +1 -1
  131. package/dist/search/client.js +6 -6
  132. package/dist/search/index.js +1 -1
  133. package/dist/search/orama-cloud-legacy.d.ts +5 -5
  134. package/dist/search/orama-cloud-legacy.js.map +1 -1
  135. package/dist/search/orama-cloud.d.ts +5 -5
  136. package/dist/search/orama-cloud.js.map +1 -1
  137. package/dist/search/server.d.ts +6 -4
  138. package/dist/search/server.js +4 -4
  139. package/dist/search/server.js.map +1 -1
  140. package/dist/{search-DcH54N2x.js → search-DzqmOjzV.js} +1 -1
  141. package/dist/search-DzqmOjzV.js.map +1 -0
  142. package/dist/{server-BzFuYBxW.d.ts → server-CLPpotS9.d.ts} +4 -4
  143. package/dist/{server-BzFuYBxW.d.ts.map → server-CLPpotS9.d.ts.map} +1 -1
  144. package/dist/{shiki-DoHr6fEj.js → shiki-B4NO99XD.js} +1 -1
  145. package/dist/shiki-B4NO99XD.js.map +1 -0
  146. package/dist/{shiki-Bdk0JGsB.d.ts → shiki-vKy7H_iw.d.ts} +1 -1
  147. package/dist/{shiki-Bdk0JGsB.d.ts.map → shiki-vKy7H_iw.d.ts.map} +1 -1
  148. package/dist/source/client/index.d.ts +4 -18
  149. package/dist/source/client/index.js +17 -10
  150. package/dist/source/client/index.js.map +1 -1
  151. package/dist/source/index.d.ts +4 -2
  152. package/dist/source/index.js +14 -11
  153. package/dist/source/index.js.map +1 -1
  154. package/dist/source/plugins/lucide-icons.d.ts +4 -2
  155. package/dist/source/plugins/lucide-icons.d.ts.map +1 -1
  156. package/dist/source/plugins/lucide-icons.js +1 -1
  157. package/dist/source/plugins/slugs.d.ts +4 -2
  158. package/dist/source/plugins/slugs.js +1 -1
  159. package/dist/source/plugins/slugs.js.map +1 -1
  160. package/dist/{static-DAjBQpus.js → static-C_WBOzek.js} +2 -2
  161. package/dist/static-C_WBOzek.js.map +1 -0
  162. package/dist/toc.js.map +1 -1
  163. package/dist/{util-92szu3Vf.js → util-Dn-wseQ5.js} +1 -1
  164. package/dist/{util-92szu3Vf.js.map → util-Dn-wseQ5.js.map} +1 -1
  165. package/dist/{util-ofJFdM-e.d.ts → util-d5FlPx1Z.d.ts} +1 -1
  166. package/dist/util-d5FlPx1Z.d.ts.map +1 -0
  167. package/dist/utils/use-effect-event.js.map +1 -1
  168. package/dist/{utils-bAoAH1Rh.js → utils-D10VxgVc.js} +1 -1
  169. package/dist/utils-D10VxgVc.js.map +1 -0
  170. package/package.json +12 -12
  171. package/dist/advanced-DSlc7qa9.js.map +0 -1
  172. package/dist/algolia-BGWM-DkQ.js.map +0 -1
  173. package/dist/index-Co_C8NEi.d.ts.map +0 -1
  174. package/dist/mixedbread-DSiQfUnN.js.map +0 -1
  175. package/dist/orama-cloud-BMDBfk05.js.map +0 -1
  176. package/dist/orama-cloud-legacy-CRZzZXWn.js.map +0 -1
  177. package/dist/page-tree/index.d.ts.map +0 -1
  178. package/dist/rehype-code-j8FAEnuU.js.map +0 -1
  179. package/dist/rehype-toc-Dqgey2tW.js.map +0 -1
  180. package/dist/search-DcH54N2x.js.map +0 -1
  181. package/dist/shiki-DoHr6fEj.js.map +0 -1
  182. package/dist/source/client/index.d.ts.map +0 -1
  183. package/dist/static-DAjBQpus.js.map +0 -1
  184. package/dist/util-ofJFdM-e.d.ts.map +0 -1
  185. package/dist/utils-bAoAH1Rh.js.map +0 -1
  186. /package/dist/{chunk-C1JLJEPO.js → chunk-C9UIFEcR.js} +0 -0
  187. /package/dist/{remark-gfm-B2aZXutO.d.ts → remark-gfm-jrvaEZw5.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import { t as createContentHighlighter } from "./search-DcH54N2x.js";
2
- import { t as removeUndefined } from "./remove-undefined-B7zJF-YS.js";
1
+ import { t as createContentHighlighter } from "./search-DzqmOjzV.js";
2
+ import { t as removeUndefined } from "./remove-undefined-Buxsprgu.js";
3
3
  import { getByID, search } from "@orama/orama";
4
4
 
5
5
  //#region src/search/orama/search/simple.ts
@@ -77,4 +77,4 @@ async function searchAdvanced(db, query, tag = [], { mode = "fulltext", ...overr
77
77
 
78
78
  //#endregion
79
79
  export { searchSimple as n, searchAdvanced as t };
80
- //# sourceMappingURL=advanced-DSlc7qa9.js.map
80
+ //# sourceMappingURL=advanced-tbtFDsHU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-tbtFDsHU.js","names":[],"sources":["../src/search/orama/search/simple.ts","../src/search/orama/search/advanced.ts"],"sourcesContent":["import { type Orama, search, type SearchParams } from '@orama/orama';\nimport { type SimpleDocument, type simpleSchema } from '@/search/orama/create-db';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\nexport async function searchSimple(\n db: Orama<typeof simpleSchema>,\n query: string,\n params: Partial<SearchParams<Orama<typeof simpleSchema>, SimpleDocument>> = {},\n): Promise<SortedResult[]> {\n const highlighter = createContentHighlighter(query);\n const result = await search(db, {\n term: query,\n tolerance: 1,\n ...params,\n boost: {\n title: 2,\n ...('boost' in params ? params.boost : undefined),\n },\n });\n\n return result.hits.map<SortedResult>((hit) => ({\n type: 'page',\n content: hit.document.title,\n breadcrumbs: hit.document.breadcrumbs,\n contentWithHighlights: highlighter.highlight(hit.document.title),\n id: hit.document.url,\n url: hit.document.url,\n }));\n}\n","import { getByID, type Orama, search, type SearchParams } from '@orama/orama';\nimport { type AdvancedDocument, type advancedSchema } from '@/search/orama/create-db';\nimport { removeUndefined } from '@/utils/remove-undefined';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\nexport async function searchAdvanced(\n db: Orama<typeof advancedSchema>,\n query: string,\n tag: string | string[] = [],\n {\n mode = 'fulltext',\n ...override\n }: Partial<SearchParams<Orama<typeof advancedSchema>, AdvancedDocument>> = {},\n): Promise<SortedResult[]> {\n if (typeof tag === 'string') tag = [tag];\n\n let params = {\n ...override,\n mode,\n where: removeUndefined({\n tags:\n tag.length > 0\n ? {\n containsAll: tag,\n }\n : undefined,\n ...override.where,\n }),\n groupBy: {\n properties: ['page_id'],\n maxResult: 8,\n ...override.groupBy,\n },\n } as SearchParams<typeof db, AdvancedDocument>;\n\n if (query.length > 0) {\n params = {\n ...params,\n term: query,\n properties: mode === 'fulltext' ? ['content'] : ['content', 'embeddings'],\n } as SearchParams<typeof db, AdvancedDocument>;\n }\n\n const highlighter = createContentHighlighter(query);\n const result = await search(db, params);\n const list: SortedResult[] = [];\n for (const item of result.groups ?? []) {\n const pageId = item.values[0] as string;\n\n const page = getByID(db, pageId);\n if (!page) continue;\n\n list.push({\n id: pageId,\n type: 'page',\n content: page.content,\n breadcrumbs: page.breadcrumbs,\n contentWithHighlights: highlighter.highlight(page.content),\n url: page.url,\n });\n\n for (const hit of item.result) {\n if (hit.document.type === 'page') continue;\n\n list.push({\n id: hit.document.id.toString(),\n content: hit.document.content,\n breadcrumbs: hit.document.breadcrumbs,\n contentWithHighlights: highlighter.highlight(hit.document.content),\n type: hit.document.type as SortedResult['type'],\n url: hit.document.url,\n });\n }\n }\n return list;\n}\n"],"mappings":";;;;;AAIA,eAAsB,aACpB,IACA,OACA,SAA4E,EAAE,EACrD;CACzB,MAAM,cAAc,yBAAyB,MAAM;AAWnD,SAVe,MAAM,OAAO,IAAI;EAC9B,MAAM;EACN,WAAW;EACX,GAAG;EACH,OAAO;GACL,OAAO;GACP,GAAI,WAAW,SAAS,OAAO,QAAQ;GACxC;EACF,CAAC,EAEY,KAAK,KAAmB,SAAS;EAC7C,MAAM;EACN,SAAS,IAAI,SAAS;EACtB,aAAa,IAAI,SAAS;EAC1B,uBAAuB,YAAY,UAAU,IAAI,SAAS,MAAM;EAChE,IAAI,IAAI,SAAS;EACjB,KAAK,IAAI,SAAS;EACnB,EAAE;;;;;ACtBL,eAAsB,eACpB,IACA,OACA,MAAyB,EAAE,EAC3B,EACE,OAAO,YACP,GAAG,aACsE,EAAE,EACpD;AACzB,KAAI,OAAO,QAAQ,SAAU,OAAM,CAAC,IAAI;CAExC,IAAI,SAAS;EACX,GAAG;EACH;EACA,OAAO,gBAAgB;GACrB,MACE,IAAI,SAAS,IACT,EACE,aAAa,KACd,GACD;GACN,GAAG,SAAS;GACb,CAAC;EACF,SAAS;GACP,YAAY,CAAC,UAAU;GACvB,WAAW;GACX,GAAG,SAAS;GACb;EACF;AAED,KAAI,MAAM,SAAS,EACjB,UAAS;EACP,GAAG;EACH,MAAM;EACN,YAAY,SAAS,aAAa,CAAC,UAAU,GAAG,CAAC,WAAW,aAAa;EAC1E;CAGH,MAAM,cAAc,yBAAyB,MAAM;CACnD,MAAM,SAAS,MAAM,OAAO,IAAI,OAAO;CACvC,MAAM,OAAuB,EAAE;AAC/B,MAAK,MAAM,QAAQ,OAAO,UAAU,EAAE,EAAE;EACtC,MAAM,SAAS,KAAK,OAAO;EAE3B,MAAM,OAAO,QAAQ,IAAI,OAAO;AAChC,MAAI,CAAC,KAAM;AAEX,OAAK,KAAK;GACR,IAAI;GACJ,MAAM;GACN,SAAS,KAAK;GACd,aAAa,KAAK;GAClB,uBAAuB,YAAY,UAAU,KAAK,QAAQ;GAC1D,KAAK,KAAK;GACX,CAAC;AAEF,OAAK,MAAM,OAAO,KAAK,QAAQ;AAC7B,OAAI,IAAI,SAAS,SAAS,OAAQ;AAElC,QAAK,KAAK;IACR,IAAI,IAAI,SAAS,GAAG,UAAU;IAC9B,SAAS,IAAI,SAAS;IACtB,aAAa,IAAI,SAAS;IAC1B,uBAAuB,YAAY,UAAU,IAAI,SAAS,QAAQ;IAClE,MAAM,IAAI,SAAS;IACnB,KAAK,IAAI,SAAS;IACnB,CAAC;;;AAGN,QAAO"}
@@ -1,4 +1,4 @@
1
- import { n as StructuredData } from "./remark-structure-CszwnaMR.js";
1
+ import { n as StructuredData } from "./remark-structure-ChKxMXnK.js";
2
2
  import { Algoliasearch } from "algoliasearch";
3
3
 
4
4
  //#region src/search/algolia.d.ts
@@ -65,4 +65,4 @@ interface BaseIndex {
65
65
  }
66
66
  //#endregion
67
67
  export { sync as a, setIndexSettings as i, DocumentRecord as n, updateDocuments as o, SyncOptions as r, BaseIndex as t };
68
- //# sourceMappingURL=algolia-FqjcaTcD.d.ts.map
68
+ //# sourceMappingURL=algolia-BFVpYDZ_.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"algolia-FqjcaTcD.d.ts","names":[],"sources":["../src/search/algolia.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,cAAA;;AAAjB;AA2BA;EAkBsB,GAAA,EAAA,MAAI;EAAS,KAAA,EAAA,MAAA;EAAwB,WAAA,CAAA,EAAA,MAAA;EAAc,WAAA,CAAA,EAAA,MAAA,EAAA;EAAO;AAMhF;AAyDA;EACU,GAAA,EAAA,MAAA;EAEG,UAAA,EAjGC,cAiGD;EACV;;AASH;;;;;;;UA9FiB,WAAA;;;;;;;;aASJ;;;;;;;;iBASS,IAAA,SAAa,wBAAwB,cAAc;iBAMnD,gBAAA,SAAyB,mCAAmC;iBAyD5D,eAAA,SACZ,6CAEG,mBACV;UASc,SAAA"}
1
+ {"version":3,"file":"algolia-BFVpYDZ_.d.ts","names":[],"sources":["../src/search/algolia.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,cAAA;;AAAjB;AA2BA;EAkBsB,GAAA,EAAA,MAAI;EAAS,KAAA,EAAA,MAAA;EAAwB,WAAA,CAAA,EAAA,MAAA;EAAc,WAAA,CAAA,EAAA,MAAA,EAAA;EAAO;AAMhF;AAyDA;EACU,GAAA,EAAA,MAAA;EAEG,UAAA,EAjGC,cAiGD;EACV;;AASH;;;;;;;UA9FiB,WAAA;;;;;;;;aASJ;;;;;;;;iBASS,IAAA,SAAa,wBAAwB,cAAc;iBAMnD,gBAAA,SAAyB,mCAAmC;iBAyD5D,eAAA,SACZ,6CAEG,mBACV;UASc,SAAA"}
@@ -1,4 +1,4 @@
1
- import { t as createContentHighlighter } from "./search-DcH54N2x.js";
1
+ import { t as createContentHighlighter } from "./search-DzqmOjzV.js";
2
2
 
3
3
  //#region src/search/client/algolia.ts
4
4
  function groupResults(hits) {
@@ -46,4 +46,4 @@ async function searchDocs(query, { indexName, onSearch, client, locale, tag }) {
46
46
 
47
47
  //#endregion
48
48
  export { searchDocs };
49
- //# sourceMappingURL=algolia-BGWM-DkQ.js.map
49
+ //# sourceMappingURL=algolia-Dbt0kj8j.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algolia-Dbt0kj8j.js","names":[],"sources":["../src/search/client/algolia.ts"],"sourcesContent":["import type { BaseIndex } from '@/search/algolia';\nimport type { Hit, LiteClient, SearchResponse } from 'algoliasearch/lite';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\nexport interface AlgoliaOptions {\n indexName: string;\n client: LiteClient;\n\n /**\n * Filter results with specific tag.\n */\n tag?: string;\n\n locale?: string;\n\n onSearch?: (\n query: string,\n tag?: string,\n locale?: string,\n ) => Promise<{\n results: SearchResponse<BaseIndex>[];\n }>;\n}\n\nexport function groupResults(hits: Hit<BaseIndex>[]): SortedResult[] {\n const grouped: SortedResult[] = [];\n const scannedUrls = new Set<string>();\n\n for (const hit of hits) {\n if (!scannedUrls.has(hit.url)) {\n scannedUrls.add(hit.url);\n\n grouped.push({\n id: hit.url,\n type: 'page',\n breadcrumbs: hit.breadcrumbs,\n url: hit.url,\n content: hit.title,\n });\n }\n\n grouped.push({\n id: hit.objectID,\n type: hit.content === hit.section ? 'heading' : 'text',\n url: hit.section_id ? `${hit.url}#${hit.section_id}` : hit.url,\n content: hit.content,\n });\n }\n\n return grouped;\n}\n\nexport async function searchDocs(\n query: string,\n { indexName, onSearch, client, locale, tag }: AlgoliaOptions,\n): Promise<SortedResult[]> {\n if (query.trim().length === 0) return [];\n\n const result = onSearch\n ? await onSearch(query, tag, locale)\n : await client.searchForHits<BaseIndex>({\n requests: [\n {\n type: 'default',\n indexName,\n query,\n distinct: 5,\n hitsPerPage: 10,\n filters: tag ? `tag:${tag}` : undefined,\n },\n ],\n });\n\n const highlighter = createContentHighlighter(query);\n return groupResults(result.results[0].hits).flatMap((hit) => {\n if (hit.type === 'page') {\n return {\n ...hit,\n contentWithHighlights: hit.contentWithHighlights ?? highlighter.highlight(hit.content),\n };\n }\n\n return [];\n });\n}\n"],"mappings":";;;AAwBA,SAAgB,aAAa,MAAwC;CACnE,MAAM,UAA0B,EAAE;CAClC,MAAM,8BAAc,IAAI,KAAa;AAErC,MAAK,MAAM,OAAO,MAAM;AACtB,MAAI,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE;AAC7B,eAAY,IAAI,IAAI,IAAI;AAExB,WAAQ,KAAK;IACX,IAAI,IAAI;IACR,MAAM;IACN,aAAa,IAAI;IACjB,KAAK,IAAI;IACT,SAAS,IAAI;IACd,CAAC;;AAGJ,UAAQ,KAAK;GACX,IAAI,IAAI;GACR,MAAM,IAAI,YAAY,IAAI,UAAU,YAAY;GAChD,KAAK,IAAI,aAAa,GAAG,IAAI,IAAI,GAAG,IAAI,eAAe,IAAI;GAC3D,SAAS,IAAI;GACd,CAAC;;AAGJ,QAAO;;AAGT,eAAsB,WACpB,OACA,EAAE,WAAW,UAAU,QAAQ,QAAQ,OACd;AACzB,KAAI,MAAM,MAAM,CAAC,WAAW,EAAG,QAAO,EAAE;CAExC,MAAM,SAAS,WACX,MAAM,SAAS,OAAO,KAAK,OAAO,GAClC,MAAM,OAAO,cAAyB,EACpC,UAAU,CACR;EACE,MAAM;EACN;EACA;EACA,UAAU;EACV,aAAa;EACb,SAAS,MAAM,OAAO,QAAQ;EAC/B,CACF,EACF,CAAC;CAEN,MAAM,cAAc,yBAAyB,MAAM;AACnD,QAAO,aAAa,OAAO,QAAQ,GAAG,KAAK,CAAC,SAAS,QAAQ;AAC3D,MAAI,IAAI,SAAS,OACf,QAAO;GACL,GAAG;GACH,uBAAuB,IAAI,yBAAyB,YAAY,UAAU,IAAI,QAAQ;GACvF;AAGH,SAAO,EAAE;GACT"}
@@ -1,4 +1,4 @@
1
- import { i as Root, r as Node } from "./definitions-DJAPG-2U.js";
1
+ import { i as Root, r as Node } from "./definitions-Ca2P2viV.js";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/breadcrumb.d.ts
@@ -1,5 +1,5 @@
1
- import { t as normalizeUrl } from "./normalize-url-3WQZ_H_j.js";
2
- import { r as findPath } from "./utils-bAoAH1Rh.js";
1
+ import { t as normalizeUrl } from "./normalize-url-CEfNKxaE.js";
2
+ import { r as findPath } from "./utils-D10VxgVc.js";
3
3
  import { useMemo } from "react";
4
4
 
5
5
  //#region src/breadcrumb.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","names":["items: BreadcrumbItem[]"],"sources":["../src/breadcrumb.tsx"],"sourcesContent":["import { type ReactNode, useMemo } from 'react';\nimport type * as PageTree from '@/page-tree/definitions';\nimport { normalizeUrl } from '@/utils/normalize-url';\nimport { findPath } from '@/page-tree/utils';\n\nexport interface BreadcrumbItem {\n name: ReactNode;\n url?: string;\n}\n\nexport interface BreadcrumbOptions {\n /**\n * Include the root folders in the breadcrumb items array.\n *\n * @defaultValue false\n */\n includeRoot?:\n | boolean\n | {\n /**\n * Specify the url of root\n */\n url: string;\n };\n\n /**\n * Include the page itself in the breadcrumb items array\n *\n * @defaultValue false\n */\n includePage?: boolean;\n\n /**\n * Count separator as an item\n *\n * @defaultValue false\n */\n includeSeparator?: boolean;\n}\n\nexport function useBreadcrumb(\n url: string,\n tree: PageTree.Root,\n options?: BreadcrumbOptions,\n): BreadcrumbItem[] {\n return useMemo(() => getBreadcrumbItems(url, tree, options), [tree, url, options]);\n}\n\nexport function getBreadcrumbItems(\n url: string,\n tree: PageTree.Root,\n options: BreadcrumbOptions = {},\n): BreadcrumbItem[] {\n return getBreadcrumbItemsFromPath(tree, searchPath(tree.children, url) ?? [], options);\n}\n\nexport function getBreadcrumbItemsFromPath(\n tree: PageTree.Root,\n path: PageTree.Node[],\n options: BreadcrumbOptions,\n): BreadcrumbItem[] {\n const { includePage = false, includeSeparator = false, includeRoot = false } = options;\n let items: BreadcrumbItem[] = [];\n for (let i = 0; i < path.length; i++) {\n const item = path[i];\n\n switch (item.type) {\n case 'page':\n if (includePage)\n items.push({\n name: item.name,\n url: item.url,\n });\n break;\n case 'folder':\n if (item.root && !includeRoot) {\n items = [];\n break;\n }\n\n // only show the index node of folders if possible\n if (i === path.length - 1 || item.index !== path[i + 1]) {\n items.push({\n name: item.name,\n url: item.index?.url,\n });\n }\n break;\n case 'separator':\n if (item.name && includeSeparator)\n items.push({\n name: item.name,\n });\n break;\n }\n }\n\n if (includeRoot) {\n items.unshift({\n name: tree.name,\n url: typeof includeRoot === 'object' ? includeRoot.url : undefined,\n });\n }\n\n return items;\n}\n\n/**\n * Search the path of a node in the tree by a specified url\n *\n * - When the page doesn't exist, return null\n *\n * @returns The path to the target node from root\n * @internal Don't use this on your own\n */\nexport function searchPath(nodes: PageTree.Node[], url: string): PageTree.Node[] | null {\n const normalizedUrl = normalizeUrl(url);\n\n return findPath(nodes, (node) => node.type === 'page' && node.url === normalizedUrl);\n}\n"],"mappings":";;;;;AAwCA,SAAgB,cACd,KACA,MACA,SACkB;AAClB,QAAO,cAAc,mBAAmB,KAAK,MAAM,QAAQ,EAAE;EAAC;EAAM;EAAK;EAAQ,CAAC;;AAGpF,SAAgB,mBACd,KACA,MACA,UAA6B,EAAE,EACb;AAClB,QAAO,2BAA2B,MAAM,WAAW,KAAK,UAAU,IAAI,IAAI,EAAE,EAAE,QAAQ;;AAGxF,SAAgB,2BACd,MACA,MACA,SACkB;CAClB,MAAM,EAAE,cAAc,OAAO,mBAAmB,OAAO,cAAc,UAAU;CAC/E,IAAIA,QAA0B,EAAE;AAChC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;AAElB,UAAQ,KAAK,MAAb;GACE,KAAK;AACH,QAAI,YACF,OAAM,KAAK;KACT,MAAM,KAAK;KACX,KAAK,KAAK;KACX,CAAC;AACJ;GACF,KAAK;AACH,QAAI,KAAK,QAAQ,CAAC,aAAa;AAC7B,aAAQ,EAAE;AACV;;AAIF,QAAI,MAAM,KAAK,SAAS,KAAK,KAAK,UAAU,KAAK,IAAI,GACnD,OAAM,KAAK;KACT,MAAM,KAAK;KACX,KAAK,KAAK,OAAO;KAClB,CAAC;AAEJ;GACF,KAAK;AACH,QAAI,KAAK,QAAQ,iBACf,OAAM,KAAK,EACT,MAAM,KAAK,MACZ,CAAC;AACJ;;;AAIN,KAAI,YACF,OAAM,QAAQ;EACZ,MAAM,KAAK;EACX,KAAK,OAAO,gBAAgB,WAAW,YAAY,MAAM;EAC1D,CAAC;AAGJ,QAAO;;;;;;;;;;AAWT,SAAgB,WAAW,OAAwB,KAAqC;CACtF,MAAM,gBAAgB,aAAa,IAAI;AAEvC,QAAO,SAAS,QAAQ,SAAS,KAAK,SAAS,UAAU,KAAK,QAAQ,cAAc"}
1
+ {"version":3,"file":"breadcrumb.js","names":[],"sources":["../src/breadcrumb.tsx"],"sourcesContent":["import { type ReactNode, useMemo } from 'react';\nimport type * as PageTree from '@/page-tree/definitions';\nimport { normalizeUrl } from '@/utils/normalize-url';\nimport { findPath } from '@/page-tree/utils';\n\nexport interface BreadcrumbItem {\n name: ReactNode;\n url?: string;\n}\n\nexport interface BreadcrumbOptions {\n /**\n * Include the root folders in the breadcrumb items array.\n *\n * @defaultValue false\n */\n includeRoot?:\n | boolean\n | {\n /**\n * Specify the url of root\n */\n url: string;\n };\n\n /**\n * Include the page itself in the breadcrumb items array\n *\n * @defaultValue false\n */\n includePage?: boolean;\n\n /**\n * Count separator as an item\n *\n * @defaultValue false\n */\n includeSeparator?: boolean;\n}\n\nexport function useBreadcrumb(\n url: string,\n tree: PageTree.Root,\n options?: BreadcrumbOptions,\n): BreadcrumbItem[] {\n return useMemo(() => getBreadcrumbItems(url, tree, options), [tree, url, options]);\n}\n\nexport function getBreadcrumbItems(\n url: string,\n tree: PageTree.Root,\n options: BreadcrumbOptions = {},\n): BreadcrumbItem[] {\n return getBreadcrumbItemsFromPath(tree, searchPath(tree.children, url) ?? [], options);\n}\n\nexport function getBreadcrumbItemsFromPath(\n tree: PageTree.Root,\n path: PageTree.Node[],\n options: BreadcrumbOptions,\n): BreadcrumbItem[] {\n const { includePage = false, includeSeparator = false, includeRoot = false } = options;\n let items: BreadcrumbItem[] = [];\n for (let i = 0; i < path.length; i++) {\n const item = path[i];\n\n switch (item.type) {\n case 'page':\n if (includePage)\n items.push({\n name: item.name,\n url: item.url,\n });\n break;\n case 'folder':\n if (item.root && !includeRoot) {\n items = [];\n break;\n }\n\n // only show the index node of folders if possible\n if (i === path.length - 1 || item.index !== path[i + 1]) {\n items.push({\n name: item.name,\n url: item.index?.url,\n });\n }\n break;\n case 'separator':\n if (item.name && includeSeparator)\n items.push({\n name: item.name,\n });\n break;\n }\n }\n\n if (includeRoot) {\n items.unshift({\n name: tree.name,\n url: typeof includeRoot === 'object' ? includeRoot.url : undefined,\n });\n }\n\n return items;\n}\n\n/**\n * Search the path of a node in the tree by a specified url\n *\n * - When the page doesn't exist, return null\n *\n * @returns The path to the target node from root\n * @internal Don't use this on your own\n */\nexport function searchPath(nodes: PageTree.Node[], url: string): PageTree.Node[] | null {\n const normalizedUrl = normalizeUrl(url);\n\n return findPath(nodes, (node) => node.type === 'page' && node.url === normalizedUrl);\n}\n"],"mappings":";;;;;AAwCA,SAAgB,cACd,KACA,MACA,SACkB;AAClB,QAAO,cAAc,mBAAmB,KAAK,MAAM,QAAQ,EAAE;EAAC;EAAM;EAAK;EAAQ,CAAC;;AAGpF,SAAgB,mBACd,KACA,MACA,UAA6B,EAAE,EACb;AAClB,QAAO,2BAA2B,MAAM,WAAW,KAAK,UAAU,IAAI,IAAI,EAAE,EAAE,QAAQ;;AAGxF,SAAgB,2BACd,MACA,MACA,SACkB;CAClB,MAAM,EAAE,cAAc,OAAO,mBAAmB,OAAO,cAAc,UAAU;CAC/E,IAAI,QAA0B,EAAE;AAChC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;AAElB,UAAQ,KAAK,MAAb;GACE,KAAK;AACH,QAAI,YACF,OAAM,KAAK;KACT,MAAM,KAAK;KACX,KAAK,KAAK;KACX,CAAC;AACJ;GACF,KAAK;AACH,QAAI,KAAK,QAAQ,CAAC,aAAa;AAC7B,aAAQ,EAAE;AACV;;AAIF,QAAI,MAAM,KAAK,SAAS,KAAK,KAAK,UAAU,KAAK,IAAI,GACnD,OAAM,KAAK;KACT,MAAM,KAAK;KACX,KAAK,KAAK,OAAO;KAClB,CAAC;AAEJ;GACF,KAAK;AACH,QAAI,KAAK,QAAQ,iBACf,OAAM,KAAK,EACT,MAAM,KAAK,MACZ,CAAC;AACJ;;;AAIN,KAAI,YACF,OAAM,QAAQ;EACZ,MAAM,KAAK;EACX,KAAK,OAAO,gBAAgB,WAAW,YAAY,MAAM;EAC1D,CAAC;AAGJ,QAAO;;;;;;;;;;AAWT,SAAgB,WAAW,OAAwB,KAAqC;CACtF,MAAM,gBAAgB,aAAa,IAAI;AAEvC,QAAO,SAAS,QAAQ,SAAS,KAAK,SAAS,UAAU,KAAK,QAAQ,cAAc"}
@@ -34,4 +34,4 @@ interface CodeBlockAttributes<Name extends string = string> {
34
34
  declare function parseCodeBlockAttributes<Name extends string = string>(meta: string, allowedNames?: Name[]): CodeBlockAttributes<Name>;
35
35
  //#endregion
36
36
  export { parseCodeBlockAttributes as i, CodeBlockTabsOptions as n, generateCodeBlockTabs as r, CodeBlockAttributes as t };
37
- //# sourceMappingURL=codeblock-utils-Dh1w8ICD.d.ts.map
37
+ //# sourceMappingURL=codeblock-utils-CdA7nXLP.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock-utils-Dh1w8ICD.d.ts","names":[],"sources":["../src/mdx-plugins/codeblock-utils.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,oBAAA;eACF;EADE,YAAA,CAAA,EAAA,MAAA;EACF,OAAA,CAAA,EAAA;IASA,EAAA,EAAA,MAAA;EAAe,CAAA,GAAA,KAAA;EAIhB,QAAA,EAAA;IAAY,KAAA,EAAA,MAAA;IAIV,QAAA,EAAA,CARD,YAQsB,GARP,IAQO,CAAA,EAAA;EACnC,CAAA,EAAA;EACA,IAAA,EAAA;IACA,KAAA,EAAA,MAAA;IACA,QAAA,EARY,YAQZ,EAAA;EAEC,CAAA,EAAA;;AAAwC,iBAN3B,qBAAA,CAM2B;EAAA,OAAA;EAAA,YAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAAxC,oBAAwC,CAAA,EAAjB,iBAAiB;AA6D1B,UAAA,mBAAmB,CAAA,aAAA,MAAA,GAAA,MAAA,CAAA,CAAA;EACP,UAAA,EAAf,OAAe,CAAP,MAAO,CAAA,IAAA,EAAA,MAAA,GAAA,IAAA,CAAA,CAAA;EAAP,IAAA,EAAA,MAAA;;;AAOtB;;AAGuB,iBAHP,wBAGO,CAAA,aAAA,MAAA,GAAA,MAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EADN,IACM,EAAA,CAAA,EAApB,mBAAoB,CAAA,IAAA,CAAA"}
1
+ {"version":3,"file":"codeblock-utils-CdA7nXLP.d.ts","names":[],"sources":["../src/mdx-plugins/codeblock-utils.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,oBAAA;eACF;EADE,YAAA,CAAA,EAAA,MAAA;EACF,OAAA,CAAA,EAAA;IASA,EAAA,EAAA,MAAA;EAAe,CAAA,GAAA,KAAA;EAIhB,QAAA,EAAA;IAAY,KAAA,EAAA,MAAA;IAIV,QAAA,EAAA,CARD,YAQsB,GARP,IAQO,CAAA,EAAA;EACnC,CAAA,EAAA;EACA,IAAA,EAAA;IACA,KAAA,EAAA,MAAA;IACA,QAAA,EARY,YAQZ,EAAA;EAEC,CAAA,EAAA;;AAAwC,iBAN3B,qBAAA,CAM2B;EAAA,OAAA;EAAA,YAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAAxC,oBAAwC,CAAA,EAAjB,iBAAiB;AA6D1B,UAAA,mBAAmB,CAAA,aAAA,MAAA,GAAA,MAAA,CAAA,CAAA;EACP,UAAA,EAAf,OAAe,CAAP,MAAO,CAAA,IAAA,EAAA,MAAA,GAAA,IAAA,CAAA,CAAA;EAAP,IAAA,EAAA,MAAA;;;AAOtB;;AAGuB,iBAHP,wBAGO,CAAA,aAAA,MAAA,GAAA,MAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EADN,IACM,EAAA,CAAA,EAApB,mBAAoB,CAAA,IAAA,CAAA"}
@@ -1,12 +1,12 @@
1
- import "../../remark-gfm-B2aZXutO.js";
2
- import { t as RehypeCodeOptions } from "../../rehype-code-Bd52chOe.js";
3
- import { t as RemarkImageOptions } from "../../remark-image-DMRnxsRO.js";
4
- import { t as StructureOptions } from "../../remark-structure-CszwnaMR.js";
5
- import { t as RemarkHeadingOptions } from "../../remark-heading-CUAe4zIu.js";
6
- import { t as RemarkCodeTabOptions } from "../../remark-code-tab-C0f6BPcw.js";
7
- import { t as RemarkNpmOptions } from "../../remark-npm-CykFgJn2.js";
1
+ import "../../remark-gfm-jrvaEZw5.js";
2
+ import { t as RehypeCodeOptions } from "../../rehype-code-BUrju-yF.js";
3
+ import { t as RemarkImageOptions } from "../../remark-image-C3MnP-3r.js";
4
+ import { t as StructureOptions } from "../../remark-structure-ChKxMXnK.js";
5
+ import { t as RemarkHeadingOptions } from "../../remark-heading-CSButCYt.js";
6
+ import { t as RemarkCodeTabOptions } from "../../remark-code-tab-Ds_BdYXz.js";
7
+ import { t as RemarkNpmOptions } from "../../remark-npm-DADZg0pf.js";
8
8
  import "../../mdx-plugins/index.js";
9
- import { t as ResolvePlugins } from "../../util-ofJFdM-e.js";
9
+ import { t as ResolvePlugins } from "../../util-d5FlPx1Z.js";
10
10
  import { ProcessorOptions } from "@mdx-js/mdx";
11
11
 
12
12
  //#region src/content/mdx/preset-bundler.d.ts
@@ -1,4 +1,4 @@
1
- import { t as resolvePlugins } from "../../util-92szu3Vf.js";
1
+ import { t as resolvePlugins } from "../../util-Dn-wseQ5.js";
2
2
 
3
3
  //#region src/content/mdx/preset-bundler.ts
4
4
  /**
@@ -1,12 +1,12 @@
1
- import "../../remark-gfm-B2aZXutO.js";
2
- import { t as RehypeCodeOptions } from "../../rehype-code-Bd52chOe.js";
3
- import { t as RemarkImageOptions } from "../../remark-image-DMRnxsRO.js";
4
- import { t as StructureOptions } from "../../remark-structure-CszwnaMR.js";
5
- import { t as RemarkHeadingOptions } from "../../remark-heading-CUAe4zIu.js";
6
- import { t as RemarkCodeTabOptions } from "../../remark-code-tab-C0f6BPcw.js";
7
- import { t as RemarkNpmOptions } from "../../remark-npm-CykFgJn2.js";
1
+ import "../../remark-gfm-jrvaEZw5.js";
2
+ import { t as RehypeCodeOptions } from "../../rehype-code-BUrju-yF.js";
3
+ import { t as RemarkImageOptions } from "../../remark-image-C3MnP-3r.js";
4
+ import { t as StructureOptions } from "../../remark-structure-ChKxMXnK.js";
5
+ import { t as RemarkHeadingOptions } from "../../remark-heading-CSButCYt.js";
6
+ import { t as RemarkCodeTabOptions } from "../../remark-code-tab-Ds_BdYXz.js";
7
+ import { t as RemarkNpmOptions } from "../../remark-npm-DADZg0pf.js";
8
8
  import "../../mdx-plugins/index.js";
9
- import { t as ResolvePlugins } from "../../util-ofJFdM-e.js";
9
+ import { t as ResolvePlugins } from "../../util-d5FlPx1Z.js";
10
10
  import { ProcessorOptions } from "@mdx-js/mdx";
11
11
 
12
12
  //#region src/content/mdx/preset-runtime.d.ts
@@ -1,4 +1,4 @@
1
- import { t as resolvePlugins } from "../../util-92szu3Vf.js";
1
+ import { t as resolvePlugins } from "../../util-Dn-wseQ5.js";
2
2
 
3
3
  //#region src/content/mdx/preset-runtime.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import "../mdast-utils-ix4DsXJP.js";
1
+ import "../mdast-utils-B8O-41y4.js";
2
2
  import { remarkHeading } from "../mdx-plugins/remark-heading.js";
3
3
  import { remark } from "remark";
4
4
 
@@ -59,4 +59,4 @@ interface Folder extends ID {
59
59
  }
60
60
  //#endregion
61
61
  export { Separator as a, Root as i, Item as n, Node as r, Folder as t };
62
- //# sourceMappingURL=definitions-DJAPG-2U.d.ts.map
62
+ //# sourceMappingURL=definitions-Ca2P2viV.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions-DJAPG-2U.d.ts","names":[],"sources":["../src/page-tree/definitions.ts"],"sourcesContent":[],"mappings":";;;UAEU,EAAA;;AAF6B;AASvC;EACQ,GAAA,CAAA,EAAA,MAAA;;AAKK,UANI,IAAA,SAAa,EAMjB,CAAA;EANiB,IAAA,EACtB,SADsB;EAAE,QAAA,EAEpB,IAFoB,EAAA;EASpB;;;EAA0B,QAAA,CAAA,EAHzB,IAGyB;;AAErB,KAFL,IAAA,GAAO,IAEG,GAFI,SAEJ,GAFgB,MAEhB;AASd,UATS,IAAA,SAAa,EAStB,CAAA;EASQ;;;EAlBgB,IAAA,CAAA,EAAA;IAsBf,IAAA,EAAA,MAAU;EAElB,CAAA;EACA,IAAA,EAAA,MAAA;EAH0B,IAAA,EAb3B,SAa2B;EAAE,GAAA,EAAA,MAAA;EAMpB;;;;;EAgBL,QAAA,CAAA,EAAA,OAAA;EAhBoB,WAAA,CAAA,EAVhB,SAUgB;EAAE,IAAA,CAAA,EATzB,SASyB;;UANjB,SAAA,SAAkB;;SAE1B;SACA;;UAGQ,MAAA,SAAe;;;;;;;;QASxB;gBACQ;;;;UAIN;SACD;YACG"}
1
+ {"version":3,"file":"definitions-Ca2P2viV.d.ts","names":[],"sources":["../src/page-tree/definitions.ts"],"sourcesContent":[],"mappings":";;;UAEU,EAAA;;AAF6B;AASvC;EACQ,GAAA,CAAA,EAAA,MAAA;;AAKK,UANI,IAAA,SAAa,EAMjB,CAAA;EANiB,IAAA,EACtB,SADsB;EAAE,QAAA,EAEpB,IAFoB,EAAA;EASpB;;;EAA0B,QAAA,CAAA,EAHzB,IAGyB;;AAErB,KAFL,IAAA,GAAO,IAEG,GAFI,SAEJ,GAFgB,MAEhB;AASd,UATS,IAAA,SAAa,EAStB,CAAA;EASQ;;;EAlBgB,IAAA,CAAA,EAAA;IAsBf,IAAA,EAAA,MAAU;EAElB,CAAA;EACA,IAAA,EAAA,MAAA;EAH0B,IAAA,EAb3B,SAa2B;EAAE,GAAA,EAAA,MAAA;EAMpB;;;;;EAgBL,QAAA,CAAA,EAAA,OAAA;EAhBoB,WAAA,CAAA,EAVhB,SAUgB;EAAE,IAAA,CAAA,EATzB,SASyB;;UANjB,SAAA,SAAkB;;SAE1B;SACA;;UAGQ,MAAA,SAAe;;;;;;;;QASxB;gBACQ;;;;UAIN;SACD;YACG"}
@@ -17,4 +17,4 @@ async function fetchDocs(query, { api = "/api/search", locale, tag }) {
17
17
 
18
18
  //#endregion
19
19
  export { fetchDocs };
20
- //# sourceMappingURL=fetch-B1nmMSyw.js.map
20
+ //# sourceMappingURL=fetch-CiphcAUR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-B1nmMSyw.js","names":[],"sources":["../src/search/client/fetch.ts"],"sourcesContent":["import type { SortedResult } from '@/search';\n\nexport interface FetchOptions {\n /**\n * API route for search endpoint, support absolute URLs.\n *\n * @defaultValue '/api/search'\n */\n api?: string;\n\n /**\n * Filter results with specific tag(s).\n */\n tag?: string | string[];\n\n /**\n * Filter by locale\n */\n locale?: string;\n}\n\nconst cache = new Map<string, SortedResult[]>();\n\nexport async function fetchDocs(\n query: string,\n { api = '/api/search', locale, tag }: FetchOptions,\n): Promise<SortedResult[]> {\n const url = new URL(api, window.location.origin);\n url.searchParams.set('query', query);\n if (locale) url.searchParams.set('locale', locale);\n if (tag) url.searchParams.set('tag', Array.isArray(tag) ? tag.join(',') : tag);\n\n const key = url.toString();\n const cached = cache.get(key);\n if (cached) return cached;\n\n const res = await fetch(url);\n if (!res.ok) throw new Error(await res.text());\n const result = (await res.json()) as SortedResult[];\n cache.set(key, result);\n return result;\n}\n"],"mappings":";AAqBA,MAAM,wBAAQ,IAAI,KAA6B;AAE/C,eAAsB,UACpB,OACA,EAAE,MAAM,eAAe,QAAQ,OACN;CACzB,MAAM,MAAM,IAAI,IAAI,KAAK,OAAO,SAAS,OAAO;AAChD,KAAI,aAAa,IAAI,SAAS,MAAM;AACpC,KAAI,OAAQ,KAAI,aAAa,IAAI,UAAU,OAAO;AAClD,KAAI,IAAK,KAAI,aAAa,IAAI,OAAO,MAAM,QAAQ,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;CAE9E,MAAM,MAAM,IAAI,UAAU;CAC1B,MAAM,SAAS,MAAM,IAAI,IAAI;AAC7B,KAAI,OAAQ,QAAO;CAEnB,MAAM,MAAM,MAAM,MAAM,IAAI;AAC5B,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC;CAC9C,MAAM,SAAU,MAAM,IAAI,MAAM;AAChC,OAAM,IAAI,KAAK,OAAO;AACtB,QAAO"}
1
+ {"version":3,"file":"fetch-CiphcAUR.js","names":[],"sources":["../src/search/client/fetch.ts"],"sourcesContent":["import type { SortedResult } from '@/search';\n\nexport interface FetchOptions {\n /**\n * API route for search endpoint, support absolute URLs.\n *\n * @defaultValue '/api/search'\n */\n api?: string;\n\n /**\n * Filter results with specific tag(s).\n */\n tag?: string | string[];\n\n /**\n * Filter by locale\n */\n locale?: string;\n}\n\nconst cache = new Map<string, SortedResult[]>();\n\nexport async function fetchDocs(\n query: string,\n { api = '/api/search', locale, tag }: FetchOptions,\n): Promise<SortedResult[]> {\n const url = new URL(api, window.location.origin);\n url.searchParams.set('query', query);\n if (locale) url.searchParams.set('locale', locale);\n if (tag) url.searchParams.set('tag', Array.isArray(tag) ? tag.join(',') : tag);\n\n const key = url.toString();\n const cached = cache.get(key);\n if (cached) return cached;\n\n const res = await fetch(url);\n if (!res.ok) throw new Error(await res.text());\n const result = (await res.json()) as SortedResult[];\n cache.set(key, result);\n return result;\n}\n"],"mappings":";AAqBA,MAAM,wBAAQ,IAAI,KAA6B;AAE/C,eAAsB,UACpB,OACA,EAAE,MAAM,eAAe,QAAQ,OACN;CACzB,MAAM,MAAM,IAAI,IAAI,KAAK,OAAO,SAAS,OAAO;AAChD,KAAI,aAAa,IAAI,SAAS,MAAM;AACpC,KAAI,OAAQ,KAAI,aAAa,IAAI,UAAU,OAAO;AAClD,KAAI,IAAK,KAAI,aAAa,IAAI,OAAO,MAAM,QAAQ,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;CAE9E,MAAM,MAAM,IAAI,UAAU;CAC1B,MAAM,SAAS,MAAM,IAAI,IAAI;AAC7B,KAAI,OAAQ,QAAO;CAEnB,MAAM,MAAM,MAAM,MAAM,IAAI;AAC5B,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC;CAC9C,MAAM,SAAU,MAAM,IAAI,MAAM;AAChC,OAAM,IAAI,KAAK,OAAO;AACtB,QAAO"}
@@ -1,5 +1,5 @@
1
1
  import { ComponentProps, FC, ReactNode } from "react";
2
- import * as react_jsx_runtime5 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
3
3
  import { StaticImport } from "next/dist/shared/lib/get-img-props";
4
4
 
5
5
  //#region src/framework/index.d.ts
@@ -39,12 +39,12 @@ declare function FrameworkProvider({
39
39
  children
40
40
  }: Framework & {
41
41
  children: ReactNode;
42
- }): react_jsx_runtime5.JSX.Element;
42
+ }): react_jsx_runtime2.JSX.Element;
43
43
  declare function usePathname(): string;
44
44
  declare function useRouter(): Router;
45
45
  declare function useParams(): Record<string, string | string[]>;
46
- declare function Image(props: ImageProps): react_jsx_runtime5.JSX.Element;
47
- declare function Link(props: LinkProps): react_jsx_runtime5.JSX.Element;
46
+ declare function Image(props: ImageProps): react_jsx_runtime2.JSX.Element;
47
+ declare function Link(props: LinkProps): react_jsx_runtime2.JSX.Element;
48
48
  //#endregion
49
49
  export { Framework, FrameworkProvider, Image, ImageProps, Link, Router, useParams, usePathname, useRouter };
50
50
  //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { Framework } from "./index.js";
2
2
  import { ReactNode } from "react";
3
- import * as react_jsx_runtime8 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/framework/next.d.ts
6
6
  declare function NextProvider({
@@ -11,7 +11,7 @@ declare function NextProvider({
11
11
  children: ReactNode;
12
12
  Link?: Framework['Link'];
13
13
  Image?: Framework['Image'];
14
- }): react_jsx_runtime8.JSX.Element;
14
+ }): react_jsx_runtime5.JSX.Element;
15
15
  //#endregion
16
16
  export { NextProvider };
17
17
  //# sourceMappingURL=next.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { Framework } from "./index.js";
2
2
  import { ReactNode } from "react";
3
- import * as react_jsx_runtime2 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/framework/react-router.d.ts
6
6
  declare function ReactRouterProvider({
@@ -11,7 +11,7 @@ declare function ReactRouterProvider({
11
11
  children: ReactNode;
12
12
  Link?: Framework['Link'];
13
13
  Image?: Framework['Image'];
14
- }): react_jsx_runtime2.JSX.Element;
14
+ }): react_jsx_runtime6.JSX.Element;
15
15
  //#endregion
16
16
  export { ReactRouterProvider };
17
17
  //# sourceMappingURL=react-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-router.js","names":["framework: Framework"],"sources":["../../src/framework/react-router.tsx"],"sourcesContent":["import { type ReactNode, useMemo } from 'react';\nimport { type Framework, FrameworkProvider } from '@/framework/index';\nimport { Link, useLocation, useNavigate, useParams, useRevalidator } from 'react-router';\n\nconst framework: Framework = {\n usePathname() {\n return useLocation().pathname;\n },\n useParams() {\n return useParams() as Record<string, string | string[]>;\n },\n useRouter() {\n const navigate = useNavigate();\n const revalidator = useRevalidator();\n\n return useMemo(\n () => ({\n push(url) {\n navigate(url);\n },\n refresh() {\n void revalidator.revalidate();\n },\n }),\n [navigate, revalidator],\n );\n },\n Link({ href, prefetch, ...props }) {\n return (\n <Link to={href!} prefetch={prefetch ? 'intent' : 'none'} {...props}>\n {props.children}\n </Link>\n );\n },\n};\n\nexport function ReactRouterProvider({\n children,\n Link: CustomLink,\n Image: CustomImage,\n}: {\n children: ReactNode;\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n}) {\n return (\n <FrameworkProvider\n {...framework}\n Link={CustomLink ?? framework.Link}\n Image={CustomImage ?? framework.Image}\n >\n {children}\n </FrameworkProvider>\n );\n}\n"],"mappings":";;;;;;AAIA,MAAMA,YAAuB;CAC3B,cAAc;AACZ,SAAO,aAAa,CAAC;;CAEvB,YAAY;AACV,SAAO,WAAW;;CAEpB,YAAY;EACV,MAAM,WAAW,aAAa;EAC9B,MAAM,cAAc,gBAAgB;AAEpC,SAAO,eACE;GACL,KAAK,KAAK;AACR,aAAS,IAAI;;GAEf,UAAU;AACR,IAAK,YAAY,YAAY;;GAEhC,GACD,CAAC,UAAU,YAAY,CACxB;;CAEH,KAAK,EAAE,MAAM,UAAU,GAAG,SAAS;AACjC,SACE,oBAAC;GAAK,IAAI;GAAO,UAAU,WAAW,WAAW;GAAQ,GAAI;aAC1D,MAAM;IACF;;CAGZ;AAED,SAAgB,oBAAoB,EAClC,UACA,MAAM,YACN,OAAO,eAKN;AACD,QACE,oBAAC;EACC,GAAI;EACJ,MAAM,cAAc,UAAU;EAC9B,OAAO,eAAe,UAAU;EAE/B;GACiB"}
1
+ {"version":3,"file":"react-router.js","names":[],"sources":["../../src/framework/react-router.tsx"],"sourcesContent":["import { type ReactNode, useMemo } from 'react';\nimport { type Framework, FrameworkProvider } from '@/framework/index';\nimport { Link, useLocation, useNavigate, useParams, useRevalidator } from 'react-router';\n\nconst framework: Framework = {\n usePathname() {\n return useLocation().pathname;\n },\n useParams() {\n return useParams() as Record<string, string | string[]>;\n },\n useRouter() {\n const navigate = useNavigate();\n const revalidator = useRevalidator();\n\n return useMemo(\n () => ({\n push(url) {\n navigate(url);\n },\n refresh() {\n void revalidator.revalidate();\n },\n }),\n [navigate, revalidator],\n );\n },\n Link({ href, prefetch, ...props }) {\n return (\n <Link to={href!} prefetch={prefetch ? 'intent' : 'none'} {...props}>\n {props.children}\n </Link>\n );\n },\n};\n\nexport function ReactRouterProvider({\n children,\n Link: CustomLink,\n Image: CustomImage,\n}: {\n children: ReactNode;\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n}) {\n return (\n <FrameworkProvider\n {...framework}\n Link={CustomLink ?? framework.Link}\n Image={CustomImage ?? framework.Image}\n >\n {children}\n </FrameworkProvider>\n );\n}\n"],"mappings":";;;;;;AAIA,MAAM,YAAuB;CAC3B,cAAc;AACZ,SAAO,aAAa,CAAC;;CAEvB,YAAY;AACV,SAAO,WAAW;;CAEpB,YAAY;EACV,MAAM,WAAW,aAAa;EAC9B,MAAM,cAAc,gBAAgB;AAEpC,SAAO,eACE;GACL,KAAK,KAAK;AACR,aAAS,IAAI;;GAEf,UAAU;AACR,IAAK,YAAY,YAAY;;GAEhC,GACD,CAAC,UAAU,YAAY,CACxB;;CAEH,KAAK,EAAE,MAAM,UAAU,GAAG,SAAS;AACjC,SACE,oBAAC;GAAK,IAAI;GAAO,UAAU,WAAW,WAAW;GAAQ,GAAI;aAC1D,MAAM;IACF;;CAGZ;AAED,SAAgB,oBAAoB,EAClC,UACA,MAAM,YACN,OAAO,eAKN;AACD,QACE,oBAAC;EACC,GAAI;EACJ,MAAM,cAAc,UAAU;EAC9B,OAAO,eAAe,UAAU;EAE/B;GACiB"}
@@ -1,6 +1,6 @@
1
1
  import { Framework } from "./index.js";
2
2
  import { ReactNode } from "react";
3
- import * as react_jsx_runtime3 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/framework/tanstack.d.ts
6
6
  /**
@@ -14,7 +14,7 @@ declare function TanstackProvider({
14
14
  children: ReactNode;
15
15
  Link?: Framework['Link'];
16
16
  Image?: Framework['Image'];
17
- }): react_jsx_runtime3.JSX.Element;
17
+ }): react_jsx_runtime7.JSX.Element;
18
18
  //#endregion
19
19
  export { TanstackProvider };
20
20
  //# sourceMappingURL=tanstack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack.js","names":["framework: Framework"],"sources":["../../src/framework/tanstack.tsx"],"sourcesContent":["import { type ReactNode, useRef, useMemo } from 'react';\nimport { type Framework, FrameworkProvider } from '@/framework/index';\nimport { useParams, Link, useRouter, useRouterState } from '@tanstack/react-router';\n\nconst framework: Framework = {\n Link({ href, prefetch = true, ...props }) {\n return (\n <Link to={href} preload={prefetch ? 'intent' : false} {...props}>\n {props.children}\n </Link>\n );\n },\n usePathname() {\n const { isLoading, pathname } = useRouterState({\n select: (state) => ({\n isLoading: state.isLoading,\n pathname: state.location.pathname,\n }),\n });\n\n const activePathname = useRef(pathname);\n return useMemo(() => {\n if (isLoading) {\n return activePathname.current;\n }\n\n activePathname.current = pathname;\n return pathname;\n }, [isLoading, pathname]);\n },\n useRouter() {\n const router = useRouter();\n\n return useMemo(\n () => ({\n push(url) {\n void router.navigate({\n href: url,\n });\n },\n refresh() {\n void router.invalidate();\n },\n }),\n [router],\n );\n },\n useParams() {\n return useParams({ strict: false });\n },\n};\n\n/**\n * Fumadocs adapter for Tanstack Router/Start\n */\nexport function TanstackProvider({\n children,\n Link: CustomLink,\n Image: CustomImage,\n}: {\n children: ReactNode;\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n}) {\n return (\n <FrameworkProvider\n {...framework}\n Link={CustomLink ?? framework.Link}\n Image={CustomImage ?? framework.Image}\n >\n {children}\n </FrameworkProvider>\n );\n}\n"],"mappings":";;;;;;AAIA,MAAMA,YAAuB;CAC3B,KAAK,EAAE,MAAM,WAAW,MAAM,GAAG,SAAS;AACxC,SACE,oBAAC;GAAK,IAAI;GAAM,SAAS,WAAW,WAAW;GAAO,GAAI;aACvD,MAAM;IACF;;CAGX,cAAc;EACZ,MAAM,EAAE,WAAW,aAAa,eAAe,EAC7C,SAAS,WAAW;GAClB,WAAW,MAAM;GACjB,UAAU,MAAM,SAAS;GAC1B,GACF,CAAC;EAEF,MAAM,iBAAiB,OAAO,SAAS;AACvC,SAAO,cAAc;AACnB,OAAI,UACF,QAAO,eAAe;AAGxB,kBAAe,UAAU;AACzB,UAAO;KACN,CAAC,WAAW,SAAS,CAAC;;CAE3B,YAAY;EACV,MAAM,SAAS,WAAW;AAE1B,SAAO,eACE;GACL,KAAK,KAAK;AACR,IAAK,OAAO,SAAS,EACnB,MAAM,KACP,CAAC;;GAEJ,UAAU;AACR,IAAK,OAAO,YAAY;;GAE3B,GACD,CAAC,OAAO,CACT;;CAEH,YAAY;AACV,SAAO,UAAU,EAAE,QAAQ,OAAO,CAAC;;CAEtC;;;;AAKD,SAAgB,iBAAiB,EAC/B,UACA,MAAM,YACN,OAAO,eAKN;AACD,QACE,oBAAC;EACC,GAAI;EACJ,MAAM,cAAc,UAAU;EAC9B,OAAO,eAAe,UAAU;EAE/B;GACiB"}
1
+ {"version":3,"file":"tanstack.js","names":[],"sources":["../../src/framework/tanstack.tsx"],"sourcesContent":["import { type ReactNode, useRef, useMemo } from 'react';\nimport { type Framework, FrameworkProvider } from '@/framework/index';\nimport { useParams, Link, useRouter, useRouterState } from '@tanstack/react-router';\n\nconst framework: Framework = {\n Link({ href, prefetch = true, ...props }) {\n return (\n <Link to={href} preload={prefetch ? 'intent' : false} {...props}>\n {props.children}\n </Link>\n );\n },\n usePathname() {\n const { isLoading, pathname } = useRouterState({\n select: (state) => ({\n isLoading: state.isLoading,\n pathname: state.location.pathname,\n }),\n });\n\n const activePathname = useRef(pathname);\n return useMemo(() => {\n if (isLoading) {\n return activePathname.current;\n }\n\n activePathname.current = pathname;\n return pathname;\n }, [isLoading, pathname]);\n },\n useRouter() {\n const router = useRouter();\n\n return useMemo(\n () => ({\n push(url) {\n void router.navigate({\n href: url,\n });\n },\n refresh() {\n void router.invalidate();\n },\n }),\n [router],\n );\n },\n useParams() {\n return useParams({ strict: false });\n },\n};\n\n/**\n * Fumadocs adapter for Tanstack Router/Start\n */\nexport function TanstackProvider({\n children,\n Link: CustomLink,\n Image: CustomImage,\n}: {\n children: ReactNode;\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n}) {\n return (\n <FrameworkProvider\n {...framework}\n Link={CustomLink ?? framework.Link}\n Image={CustomImage ?? framework.Image}\n >\n {children}\n </FrameworkProvider>\n );\n}\n"],"mappings":";;;;;;AAIA,MAAM,YAAuB;CAC3B,KAAK,EAAE,MAAM,WAAW,MAAM,GAAG,SAAS;AACxC,SACE,oBAAC;GAAK,IAAI;GAAM,SAAS,WAAW,WAAW;GAAO,GAAI;aACvD,MAAM;IACF;;CAGX,cAAc;EACZ,MAAM,EAAE,WAAW,aAAa,eAAe,EAC7C,SAAS,WAAW;GAClB,WAAW,MAAM;GACjB,UAAU,MAAM,SAAS;GAC1B,GACF,CAAC;EAEF,MAAM,iBAAiB,OAAO,SAAS;AACvC,SAAO,cAAc;AACnB,OAAI,UACF,QAAO,eAAe;AAGxB,kBAAe,UAAU;AACzB,UAAO;KACN,CAAC,WAAW,SAAS,CAAC;;CAE3B,YAAY;EACV,MAAM,SAAS,WAAW;AAE1B,SAAO,eACE;GACL,KAAK,KAAK;AACR,IAAK,OAAO,SAAS,EACnB,MAAM,KACP,CAAC;;GAEJ,UAAU;AACR,IAAK,OAAO,YAAY;;GAE3B,GACD,CAAC,OAAO,CACT;;CAEH,YAAY;AACV,SAAO,UAAU,EAAE,QAAQ,OAAO,CAAC;;CAEtC;;;;AAKD,SAAgB,iBAAiB,EAC/B,UACA,MAAM,YACN,OAAO,eAKN;AACD,QACE,oBAAC;EACC,GAAI;EACJ,MAAM,cAAc,UAAU;EAC9B,OAAO,eAAe,UAAU;EAE/B;GACiB"}
@@ -1,6 +1,6 @@
1
1
  import { Framework } from "./index.js";
2
2
  import { ReactNode } from "react";
3
- import * as react_jsx_runtime4 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/framework/waku.d.ts
6
6
  declare function WakuProvider({
@@ -11,7 +11,7 @@ declare function WakuProvider({
11
11
  children: ReactNode;
12
12
  Link?: Framework['Link'];
13
13
  Image?: Framework['Image'];
14
- }): react_jsx_runtime4.JSX.Element;
14
+ }): react_jsx_runtime8.JSX.Element;
15
15
  //#endregion
16
16
  export { WakuProvider };
17
17
  //# sourceMappingURL=waku.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"waku.js","names":["framework: Framework","WakuLink"],"sources":["../../src/framework/waku.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, useMemo } from 'react';\nimport { Link as WakuLink, useRouter } from 'waku';\nimport { type Framework, FrameworkProvider } from './index.js';\n\nconst framework: Framework = {\n usePathname() {\n const { path } = useRouter();\n return path;\n },\n useParams() {\n const { query } = useRouter();\n return useMemo(() => {\n const params = new URLSearchParams(query);\n return Object.fromEntries(\n Array.from(params.entries()).map(([key, value]) => [\n key,\n Array.isArray(value) ? value[0] : value,\n ]),\n );\n }, [query]);\n },\n useRouter() {\n const router = useRouter();\n\n return useMemo(\n () => ({\n push(url: string) {\n void router.push(url);\n },\n refresh() {\n void router.push(router.path);\n },\n }),\n [router],\n );\n },\n Link({ href, prefetch = true, ...props }) {\n return (\n <WakuLink to={href!} unstable_prefetchOnEnter={prefetch} {...props}>\n {props.children}\n </WakuLink>\n );\n },\n};\n\nexport function WakuProvider({\n children,\n Link: CustomLink,\n Image: CustomImage,\n}: {\n children: ReactNode;\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n}) {\n return (\n <FrameworkProvider\n {...framework}\n Link={CustomLink ?? framework.Link}\n Image={CustomImage ?? framework.Image}\n >\n {children}\n </FrameworkProvider>\n );\n}\n"],"mappings":";;;;;;;;AAMA,MAAMA,YAAuB;CAC3B,cAAc;EACZ,MAAM,EAAE,SAAS,WAAW;AAC5B,SAAO;;CAET,YAAY;EACV,MAAM,EAAE,UAAU,WAAW;AAC7B,SAAO,cAAc;GACnB,MAAM,SAAS,IAAI,gBAAgB,MAAM;AACzC,UAAO,OAAO,YACZ,MAAM,KAAK,OAAO,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CACjD,KACA,MAAM,QAAQ,MAAM,GAAG,MAAM,KAAK,MACnC,CAAC,CACH;KACA,CAAC,MAAM,CAAC;;CAEb,YAAY;EACV,MAAM,SAAS,WAAW;AAE1B,SAAO,eACE;GACL,KAAK,KAAa;AAChB,IAAK,OAAO,KAAK,IAAI;;GAEvB,UAAU;AACR,IAAK,OAAO,KAAK,OAAO,KAAK;;GAEhC,GACD,CAAC,OAAO,CACT;;CAEH,KAAK,EAAE,MAAM,WAAW,MAAM,GAAG,SAAS;AACxC,SACE,oBAACC;GAAS,IAAI;GAAO,0BAA0B;GAAU,GAAI;aAC1D,MAAM;IACE;;CAGhB;AAED,SAAgB,aAAa,EAC3B,UACA,MAAM,YACN,OAAO,eAKN;AACD,QACE,oBAAC;EACC,GAAI;EACJ,MAAM,cAAc,UAAU;EAC9B,OAAO,eAAe,UAAU;EAE/B;GACiB"}
1
+ {"version":3,"file":"waku.js","names":["WakuLink"],"sources":["../../src/framework/waku.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, useMemo } from 'react';\nimport { Link as WakuLink, useRouter } from 'waku';\nimport { type Framework, FrameworkProvider } from './index.js';\n\nconst framework: Framework = {\n usePathname() {\n const { path } = useRouter();\n return path;\n },\n useParams() {\n const { query } = useRouter();\n return useMemo(() => {\n const params = new URLSearchParams(query);\n return Object.fromEntries(\n Array.from(params.entries()).map(([key, value]) => [\n key,\n Array.isArray(value) ? value[0] : value,\n ]),\n );\n }, [query]);\n },\n useRouter() {\n const router = useRouter();\n\n return useMemo(\n () => ({\n push(url: string) {\n void router.push(url);\n },\n refresh() {\n void router.push(router.path);\n },\n }),\n [router],\n );\n },\n Link({ href, prefetch = true, ...props }) {\n return (\n <WakuLink to={href!} unstable_prefetchOnEnter={prefetch} {...props}>\n {props.children}\n </WakuLink>\n );\n },\n};\n\nexport function WakuProvider({\n children,\n Link: CustomLink,\n Image: CustomImage,\n}: {\n children: ReactNode;\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n}) {\n return (\n <FrameworkProvider\n {...framework}\n Link={CustomLink ?? framework.Link}\n Image={CustomImage ?? framework.Image}\n >\n {children}\n </FrameworkProvider>\n );\n}\n"],"mappings":";;;;;;;;AAMA,MAAM,YAAuB;CAC3B,cAAc;EACZ,MAAM,EAAE,SAAS,WAAW;AAC5B,SAAO;;CAET,YAAY;EACV,MAAM,EAAE,UAAU,WAAW;AAC7B,SAAO,cAAc;GACnB,MAAM,SAAS,IAAI,gBAAgB,MAAM;AACzC,UAAO,OAAO,YACZ,MAAM,KAAK,OAAO,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CACjD,KACA,MAAM,QAAQ,MAAM,GAAG,MAAM,KAAK,MACnC,CAAC,CACH;KACA,CAAC,MAAM,CAAC;;CAEb,YAAY;EACV,MAAM,SAAS,WAAW;AAE1B,SAAO,eACE;GACL,KAAK,KAAa;AAChB,IAAK,OAAO,KAAK,IAAI;;GAEvB,UAAU;AACR,IAAK,OAAO,KAAK,OAAO,KAAK;;GAEhC,GACD,CAAC,OAAO,CACT;;CAEH,KAAK,EAAE,MAAM,WAAW,MAAM,GAAG,SAAS;AACxC,SACE,oBAACA;GAAS,IAAI;GAAO,0BAA0B;GAAU,GAAI;aAC1D,MAAM;IACE;;CAGhB;AAED,SAAgB,aAAa,EAC3B,UACA,MAAM,YACN,OAAO,eAKN;AACD,QACE,oBAAC;EACC,GAAI;EACJ,MAAM,cAAc,UAAU;EAC9B,OAAO,eAAe,UAAU;EAE/B;GACiB"}
@@ -1,4 +1,4 @@
1
- import { t as HighlightOptions } from "../shiki-Bdk0JGsB.js";
1
+ import { t as HighlightOptions } from "../shiki-vKy7H_iw.js";
2
2
  import { DependencyList, ReactNode } from "react";
3
3
 
4
4
  //#region src/highlight/client.d.ts
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { i as highlight } from "../shiki-DoHr6fEj.js";
3
+ import { i as highlight } from "../shiki-B4NO99XD.js";
4
4
  import { use, useMemo } from "react";
5
5
 
6
6
  //#region src/highlight/client.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","names":["promises: Record<string, Promise<ReactNode>>"],"sources":["../../src/highlight/client.tsx"],"sourcesContent":["'use client';\nimport { type DependencyList, type ReactNode, use, useMemo } from 'react';\nimport { highlight, type HighlightOptions } from './shiki';\n\nconst promises: Record<string, Promise<ReactNode>> = {};\n\n/**\n * get highlighted results, should be used with React Suspense API.\n *\n * note: results are cached with (lang, code) as keys, if this is not the desired behaviour, pass a `deps` instead.\n */\nexport function useShiki(\n code: string,\n options: HighlightOptions,\n deps?: DependencyList,\n): ReactNode {\n const key = useMemo(() => {\n return deps ? JSON.stringify(deps) : `${options.lang}:${code}`;\n }, [code, deps, options.lang]);\n\n return use((promises[key] ??= highlight(code, options)));\n}\n"],"mappings":";;;;;;AAIA,MAAMA,WAA+C,EAAE;;;;;;AAOvD,SAAgB,SACd,MACA,SACA,MACW;CACX,MAAM,MAAM,cAAc;AACxB,SAAO,OAAO,KAAK,UAAU,KAAK,GAAG,GAAG,QAAQ,KAAK,GAAG;IACvD;EAAC;EAAM;EAAM,QAAQ;EAAK,CAAC;AAE9B,QAAO,IAAK,SAAS,SAAS,UAAU,MAAM,QAAQ,CAAE"}
1
+ {"version":3,"file":"client.js","names":[],"sources":["../../src/highlight/client.tsx"],"sourcesContent":["'use client';\nimport { type DependencyList, type ReactNode, use, useMemo } from 'react';\nimport { highlight, type HighlightOptions } from './shiki';\n\nconst promises: Record<string, Promise<ReactNode>> = {};\n\n/**\n * get highlighted results, should be used with React Suspense API.\n *\n * note: results are cached with (lang, code) as keys, if this is not the desired behaviour, pass a `deps` instead.\n */\nexport function useShiki(\n code: string,\n options: HighlightOptions,\n deps?: DependencyList,\n): ReactNode {\n const key = useMemo(() => {\n return deps ? JSON.stringify(deps) : `${options.lang}:${code}`;\n }, [code, deps, options.lang]);\n\n return use((promises[key] ??= highlight(code, options)));\n}\n"],"mappings":";;;;;;AAIA,MAAM,WAA+C,EAAE;;;;;;AAOvD,SAAgB,SACd,MACA,SACA,MACW;CACX,MAAM,MAAM,cAAc;AACxB,SAAO,OAAO,KAAK,UAAU,KAAK,GAAG,GAAG,QAAQ,KAAK,GAAG;IACvD;EAAC;EAAM;EAAM,QAAQ;EAAK,CAAC;AAE9B,QAAO,IAAK,SAAS,SAAS,UAAU,MAAM,QAAQ,CAAE"}
@@ -1,2 +1,2 @@
1
- import { a as hastToJsx, i as getHighlighter, n as HighlightOptionsCommon, o as highlight, r as HighlightOptionsThemes, s as highlightHast, t as HighlightOptions } from "../shiki-Bdk0JGsB.js";
1
+ import { a as hastToJsx, i as getHighlighter, n as HighlightOptionsCommon, o as highlight, r as HighlightOptionsThemes, s as highlightHast, t as HighlightOptions } from "../shiki-vKy7H_iw.js";
2
2
  export { type HighlightOptions, type HighlightOptionsCommon, type HighlightOptionsThemes, getHighlighter, hastToJsx, highlight, highlightHast };
@@ -1,3 +1,3 @@
1
- import { a as highlightHast, i as highlight, n as getHighlighter, r as hastToJsx } from "../shiki-DoHr6fEj.js";
1
+ import { a as highlightHast, i as highlight, n as getHighlighter, r as hastToJsx } from "../shiki-B4NO99XD.js";
2
2
 
3
3
  export { getHighlighter, hastToJsx, highlight, highlightHast };
@@ -1,2 +1,2 @@
1
- import { n as defineI18n, t as I18nConfig } from "../index-BhVrX5J1.js";
1
+ import { n as defineI18n, t as I18nConfig } from "../index-DxhhLscI.js";
2
2
  export { I18nConfig, defineI18n };
@@ -1,4 +1,4 @@
1
- import { t as I18nConfig } from "../index-BhVrX5J1.js";
1
+ import { t as I18nConfig } from "../index-DxhhLscI.js";
2
2
  import { NextProxy } from "next/server";
3
3
  import { NextURL } from "next/dist/server/web/next-url";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","names":["DefaultFormatter: URLFormatter","formatter: URLFormatter","matchLocale"],"sources":["../../src/i18n/middleware.ts"],"sourcesContent":["import { match as matchLocale } from '@formatjs/intl-localematcher';\nimport { type NextProxy, NextResponse } from 'next/server';\nimport type { I18nConfig } from '@/i18n';\nimport { getNegotiator } from '@/negotiation';\nimport type { NextURL } from 'next/dist/server/web/next-url';\n\ninterface MiddlewareOptions extends I18nConfig {\n /**\n * Either:\n * - A formatter object\n * - A function that adds the locale prefix to pathname\n */\n format?: URLFormatter | ((locale: string, pathname: string) => string);\n\n /**\n * the cookie to store locale code when `hideLocale` is set to `always`.\n */\n cookieName?: string;\n}\n\nexport interface URLFormatter {\n /**\n * get locale code from request URL\n */\n get: (url: NextURL) => string | undefined;\n\n /**\n * add locale code to request URL (which is missing the locale).\n */\n add: (url: NextURL, locale: string) => URL;\n\n /**\n * remove locale code from request URL\n */\n remove: (url: NextURL) => URL;\n}\n\nexport const DefaultFormatter: URLFormatter = {\n get(url) {\n const segs = url.pathname.split('/');\n if (segs.length > 1 && segs[1]) return segs[1];\n },\n add(url, locale) {\n const next = new URL(url);\n next.pathname = `${url.basePath}/${locale}/${url.pathname}`.replaceAll(/\\/+/g, '/');\n return next;\n },\n remove(url) {\n const next = new URL(url);\n const pathname = url.pathname.split('/').slice(2).join('/');\n next.pathname = `${url.basePath}/${pathname}`.replaceAll(/\\/+/g, '/');\n return next;\n },\n};\n\nexport function createI18nMiddleware({\n languages,\n defaultLanguage,\n format = DefaultFormatter,\n cookieName = 'FD_LOCALE',\n hideLocale = 'never',\n}: MiddlewareOptions): NextProxy {\n let formatter: URLFormatter;\n if (typeof format === 'function') {\n formatter = {\n ...DefaultFormatter,\n add(url, locale) {\n const next = new URL(url);\n next.pathname = format(locale, url.pathname);\n return next;\n },\n };\n } else {\n formatter = format;\n }\n\n return (request) => {\n const url = request.nextUrl;\n let pathLocale = formatter.get(url);\n if (pathLocale && !languages.includes(pathLocale)) pathLocale = undefined;\n\n if (!pathLocale) {\n if (hideLocale === 'default-locale') {\n return NextResponse.rewrite(formatter.add(url, defaultLanguage));\n }\n\n const finalLanguages = getNegotiator(request).languages(languages);\n const preferred = matchLocale(finalLanguages, languages, defaultLanguage);\n if (hideLocale === 'always') {\n const locale = request.cookies.get(cookieName)?.value ?? preferred;\n\n return NextResponse.rewrite(formatter.add(url, locale));\n }\n\n return NextResponse.redirect(formatter.add(url, preferred));\n }\n\n // Remove explicit locale\n if (\n hideLocale === 'always' ||\n (hideLocale === 'default-locale' && pathLocale === defaultLanguage)\n ) {\n const res = NextResponse.redirect(formatter.remove(url));\n res.cookies.set(cookieName, pathLocale);\n return res;\n }\n\n return NextResponse.next();\n };\n}\n"],"mappings":";;;;;AAqCA,MAAaA,mBAAiC;CAC5C,IAAI,KAAK;EACP,MAAM,OAAO,IAAI,SAAS,MAAM,IAAI;AACpC,MAAI,KAAK,SAAS,KAAK,KAAK,GAAI,QAAO,KAAK;;CAE9C,IAAI,KAAK,QAAQ;EACf,MAAM,OAAO,IAAI,IAAI,IAAI;AACzB,OAAK,WAAW,GAAG,IAAI,SAAS,GAAG,OAAO,GAAG,IAAI,WAAW,WAAW,QAAQ,IAAI;AACnF,SAAO;;CAET,OAAO,KAAK;EACV,MAAM,OAAO,IAAI,IAAI,IAAI;EACzB,MAAM,WAAW,IAAI,SAAS,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI;AAC3D,OAAK,WAAW,GAAG,IAAI,SAAS,GAAG,WAAW,WAAW,QAAQ,IAAI;AACrE,SAAO;;CAEV;AAED,SAAgB,qBAAqB,EACnC,WACA,iBACA,SAAS,kBACT,aAAa,aACb,aAAa,WACkB;CAC/B,IAAIC;AACJ,KAAI,OAAO,WAAW,WACpB,aAAY;EACV,GAAG;EACH,IAAI,KAAK,QAAQ;GACf,MAAM,OAAO,IAAI,IAAI,IAAI;AACzB,QAAK,WAAW,OAAO,QAAQ,IAAI,SAAS;AAC5C,UAAO;;EAEV;KAED,aAAY;AAGd,SAAQ,YAAY;EAClB,MAAM,MAAM,QAAQ;EACpB,IAAI,aAAa,UAAU,IAAI,IAAI;AACnC,MAAI,cAAc,CAAC,UAAU,SAAS,WAAW,CAAE,cAAa;AAEhE,MAAI,CAAC,YAAY;AACf,OAAI,eAAe,iBACjB,QAAO,aAAa,QAAQ,UAAU,IAAI,KAAK,gBAAgB,CAAC;GAIlE,MAAM,YAAYC,MADK,cAAc,QAAQ,CAAC,UAAU,UAAU,EACpB,WAAW,gBAAgB;AACzE,OAAI,eAAe,UAAU;IAC3B,MAAM,SAAS,QAAQ,QAAQ,IAAI,WAAW,EAAE,SAAS;AAEzD,WAAO,aAAa,QAAQ,UAAU,IAAI,KAAK,OAAO,CAAC;;AAGzD,UAAO,aAAa,SAAS,UAAU,IAAI,KAAK,UAAU,CAAC;;AAI7D,MACE,eAAe,YACd,eAAe,oBAAoB,eAAe,iBACnD;GACA,MAAM,MAAM,aAAa,SAAS,UAAU,OAAO,IAAI,CAAC;AACxD,OAAI,QAAQ,IAAI,YAAY,WAAW;AACvC,UAAO;;AAGT,SAAO,aAAa,MAAM"}
1
+ {"version":3,"file":"middleware.js","names":["matchLocale"],"sources":["../../src/i18n/middleware.ts"],"sourcesContent":["import { match as matchLocale } from '@formatjs/intl-localematcher';\nimport { type NextProxy, NextResponse } from 'next/server';\nimport type { I18nConfig } from '@/i18n';\nimport { getNegotiator } from '@/negotiation';\nimport type { NextURL } from 'next/dist/server/web/next-url';\n\ninterface MiddlewareOptions extends I18nConfig {\n /**\n * Either:\n * - A formatter object\n * - A function that adds the locale prefix to pathname\n */\n format?: URLFormatter | ((locale: string, pathname: string) => string);\n\n /**\n * the cookie to store locale code when `hideLocale` is set to `always`.\n */\n cookieName?: string;\n}\n\nexport interface URLFormatter {\n /**\n * get locale code from request URL\n */\n get: (url: NextURL) => string | undefined;\n\n /**\n * add locale code to request URL (which is missing the locale).\n */\n add: (url: NextURL, locale: string) => URL;\n\n /**\n * remove locale code from request URL\n */\n remove: (url: NextURL) => URL;\n}\n\nexport const DefaultFormatter: URLFormatter = {\n get(url) {\n const segs = url.pathname.split('/');\n if (segs.length > 1 && segs[1]) return segs[1];\n },\n add(url, locale) {\n const next = new URL(url);\n next.pathname = `${url.basePath}/${locale}/${url.pathname}`.replaceAll(/\\/+/g, '/');\n return next;\n },\n remove(url) {\n const next = new URL(url);\n const pathname = url.pathname.split('/').slice(2).join('/');\n next.pathname = `${url.basePath}/${pathname}`.replaceAll(/\\/+/g, '/');\n return next;\n },\n};\n\nexport function createI18nMiddleware({\n languages,\n defaultLanguage,\n format = DefaultFormatter,\n cookieName = 'FD_LOCALE',\n hideLocale = 'never',\n}: MiddlewareOptions): NextProxy {\n let formatter: URLFormatter;\n if (typeof format === 'function') {\n formatter = {\n ...DefaultFormatter,\n add(url, locale) {\n const next = new URL(url);\n next.pathname = format(locale, url.pathname);\n return next;\n },\n };\n } else {\n formatter = format;\n }\n\n return (request) => {\n const url = request.nextUrl;\n let pathLocale = formatter.get(url);\n if (pathLocale && !languages.includes(pathLocale)) pathLocale = undefined;\n\n if (!pathLocale) {\n if (hideLocale === 'default-locale') {\n return NextResponse.rewrite(formatter.add(url, defaultLanguage));\n }\n\n const finalLanguages = getNegotiator(request).languages(languages);\n const preferred = matchLocale(finalLanguages, languages, defaultLanguage);\n if (hideLocale === 'always') {\n const locale = request.cookies.get(cookieName)?.value ?? preferred;\n\n return NextResponse.rewrite(formatter.add(url, locale));\n }\n\n return NextResponse.redirect(formatter.add(url, preferred));\n }\n\n // Remove explicit locale\n if (\n hideLocale === 'always' ||\n (hideLocale === 'default-locale' && pathLocale === defaultLanguage)\n ) {\n const res = NextResponse.redirect(formatter.remove(url));\n res.cookies.set(cookieName, pathLocale);\n return res;\n }\n\n return NextResponse.next();\n };\n}\n"],"mappings":";;;;;AAqCA,MAAa,mBAAiC;CAC5C,IAAI,KAAK;EACP,MAAM,OAAO,IAAI,SAAS,MAAM,IAAI;AACpC,MAAI,KAAK,SAAS,KAAK,KAAK,GAAI,QAAO,KAAK;;CAE9C,IAAI,KAAK,QAAQ;EACf,MAAM,OAAO,IAAI,IAAI,IAAI;AACzB,OAAK,WAAW,GAAG,IAAI,SAAS,GAAG,OAAO,GAAG,IAAI,WAAW,WAAW,QAAQ,IAAI;AACnF,SAAO;;CAET,OAAO,KAAK;EACV,MAAM,OAAO,IAAI,IAAI,IAAI;EACzB,MAAM,WAAW,IAAI,SAAS,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI;AAC3D,OAAK,WAAW,GAAG,IAAI,SAAS,GAAG,WAAW,WAAW,QAAQ,IAAI;AACrE,SAAO;;CAEV;AAED,SAAgB,qBAAqB,EACnC,WACA,iBACA,SAAS,kBACT,aAAa,aACb,aAAa,WACkB;CAC/B,IAAI;AACJ,KAAI,OAAO,WAAW,WACpB,aAAY;EACV,GAAG;EACH,IAAI,KAAK,QAAQ;GACf,MAAM,OAAO,IAAI,IAAI,IAAI;AACzB,QAAK,WAAW,OAAO,QAAQ,IAAI,SAAS;AAC5C,UAAO;;EAEV;KAED,aAAY;AAGd,SAAQ,YAAY;EAClB,MAAM,MAAM,QAAQ;EACpB,IAAI,aAAa,UAAU,IAAI,IAAI;AACnC,MAAI,cAAc,CAAC,UAAU,SAAS,WAAW,CAAE,cAAa;AAEhE,MAAI,CAAC,YAAY;AACf,OAAI,eAAe,iBACjB,QAAO,aAAa,QAAQ,UAAU,IAAI,KAAK,gBAAgB,CAAC;GAIlE,MAAM,YAAYA,MADK,cAAc,QAAQ,CAAC,UAAU,UAAU,EACpB,WAAW,gBAAgB;AACzE,OAAI,eAAe,UAAU;IAC3B,MAAM,SAAS,QAAQ,QAAQ,IAAI,WAAW,EAAE,SAAS;AAEzD,WAAO,aAAa,QAAQ,UAAU,IAAI,KAAK,OAAO,CAAC;;AAGzD,UAAO,aAAa,SAAS,UAAU,IAAI,KAAK,UAAU,CAAC;;AAI7D,MACE,eAAe,YACd,eAAe,oBAAoB,eAAe,iBACnD;GACA,MAAM,MAAM,aAAa,SAAS,UAAU,OAAO,IAAI,CAAC;AACxD,OAAI,QAAQ,IAAI,YAAY,WAAW;AACvC,UAAO;;AAGT,SAAO,aAAa,MAAM"}
@@ -16,4 +16,4 @@ function iconPlugin(resolveIcon) {
16
16
 
17
17
  //#endregion
18
18
  export { iconPlugin as t };
19
- //# sourceMappingURL=icon-5lVe3l-0.js.map
19
+ //# sourceMappingURL=icon-CL3r1pNG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-5lVe3l-0.js","names":[],"sources":["../src/source/plugins/icon.ts"],"sourcesContent":["import type { LoaderPlugin } from '@/source';\nimport type { ReactNode } from 'react';\nimport type * as PageTree from '@/page-tree/definitions';\n\nexport type IconResolver = (icon: string | undefined) => ReactNode;\n\nexport function iconPlugin(resolveIcon: IconResolver): LoaderPlugin {\n function replaceIcon<T extends PageTree.Node>(node: T): T {\n if (node.icon === undefined || typeof node.icon === 'string')\n node.icon = resolveIcon(node.icon);\n\n return node;\n }\n\n return {\n name: 'fumadocs:icon',\n transformPageTree: {\n file: replaceIcon,\n folder: replaceIcon,\n separator: replaceIcon,\n },\n };\n}\n"],"mappings":";AAMA,SAAgB,WAAW,aAAyC;CAClE,SAAS,YAAqC,MAAY;AACxD,MAAI,KAAK,SAAS,UAAa,OAAO,KAAK,SAAS,SAClD,MAAK,OAAO,YAAY,KAAK,KAAK;AAEpC,SAAO;;AAGT,QAAO;EACL,MAAM;EACN,mBAAmB;GACjB,MAAM;GACN,QAAQ;GACR,WAAW;GACZ;EACF"}
1
+ {"version":3,"file":"icon-CL3r1pNG.js","names":[],"sources":["../src/source/plugins/icon.ts"],"sourcesContent":["import type { LoaderPlugin } from '@/source';\nimport type { ReactNode } from 'react';\nimport type * as PageTree from '@/page-tree/definitions';\n\nexport type IconResolver = (icon: string | undefined) => ReactNode;\n\nexport function iconPlugin(resolveIcon: IconResolver): LoaderPlugin {\n function replaceIcon<T extends PageTree.Node>(node: T): T {\n if (node.icon === undefined || typeof node.icon === 'string')\n node.icon = resolveIcon(node.icon);\n\n return node;\n }\n\n return {\n name: 'fumadocs:icon',\n transformPageTree: {\n file: replaceIcon,\n folder: replaceIcon,\n separator: replaceIcon,\n },\n };\n}\n"],"mappings":";AAMA,SAAgB,WAAW,aAAyC;CAClE,SAAS,YAAqC,MAAY;AACxD,MAAI,KAAK,SAAS,UAAa,OAAO,KAAK,SAAS,SAClD,MAAK,OAAO,YAAY,KAAK,KAAK;AAEpC,SAAO;;AAGT,QAAO;EACL,MAAM;EACN,mBAAmB;GACjB,MAAM;GACN,QAAQ;GACR,WAAW;GACZ;EACF"}
@@ -0,0 +1,45 @@
1
+ import { i as Root, n as Item, r as Node, t as Folder } from "./definitions-Ca2P2viV.js";
2
+
3
+ //#region src/page-tree/utils.d.ts
4
+
5
+ /**
6
+ * Flatten tree to an array of page nodes
7
+ */
8
+ declare function flattenTree(nodes: Node[]): Item[];
9
+ /**
10
+ * Get neighbours of a page, useful for implementing "previous & next" buttons
11
+ */
12
+ declare function findNeighbour(tree: Root, url: string, options?: {
13
+ separateRoot?: boolean;
14
+ }): {
15
+ previous?: Item;
16
+ next?: Item;
17
+ };
18
+ declare function getPageTreeRoots(pageTree: Root | Folder): (Root | Folder)[];
19
+ /**
20
+ * Get other item nodes that lives under the same parent.
21
+ */
22
+ declare function getPageTreePeers(treeOrTrees: Root | Record<string, Root>, url: string): Item[];
23
+ /**
24
+ * Get other tree nodes that lives under the same parent.
25
+ */
26
+ declare function findSiblings(treeOrTrees: Root | Record<string, Root>, url: string): Node[];
27
+ declare function findParent(from: Root | Folder, url: string): Root | Folder | undefined;
28
+ /**
29
+ * Search the path of a node in the tree matched by the matcher.
30
+ *
31
+ * @returns The path to the target node (from starting root), or null if the page doesn't exist
32
+ */
33
+ declare function findPath(nodes: Node[], matcher: (node: Node) => boolean, options?: {
34
+ includeSeparator?: boolean;
35
+ }): Node[] | null;
36
+ /**
37
+ * Perform a depth-first search on page tree visiting every node.
38
+ *
39
+ * @param root - the root of page tree to visit.
40
+ * @param visitor - function to receive nodes, return `skip` to skip the children of current node, `break` to stop the search entirely.
41
+ */
42
+ declare function visit<Root$1 extends Node | Root>(root: Root$1, visitor: <T extends Node | Root>(node: T, parent?: Root | Folder) => 'skip' | 'break' | T | void): Root$1;
43
+ //#endregion
44
+ export { flattenTree as a, visit as c, findSiblings as i, findParent as n, getPageTreePeers as o, findPath as r, getPageTreeRoots as s, findNeighbour as t };
45
+ //# sourceMappingURL=index-BaMZ8PEK.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BaMZ8PEK.d.ts","names":[],"sources":["../src/page-tree/utils.ts"],"sourcesContent":[],"mappings":";;;;;;AAKA;AAkBgB,iBAlBA,WAAA,CAkBa,KAAA,EAlBM,IAkBN,EAAA,CAAA,EAlBwB,IAkBxB,EAAA;;;;AAQP,iBARN,aAAA,CAQM,IAAA,EAPd,IAOc,EAAA,GAAA,EAAA,MAAA,EAAA,OAqBV,CArBU,EAAA;EAoBN,YAAA,CAAA,EAAA,OAAgB;CACpB,CAAA,EAAA;EAAgB,QAAA,CAAA,EAtBf,IAsBe;EACxB,IAAA,CAAA,EAtBK,IAsBL;CAAgB;AAAe,iBAFnB,gBAAA,CAEmB,QAAA,EADvB,IACuB,GADP,MACO,CAAA,EAAA,CAA/B,IAA+B,GAAf,MAAe,CAAA,EAAA;AAgBnC;;;AAC+B,iBADf,gBAAA,CACe,WAAA,EAAhB,IAAgB,GAAA,MAAA,CAAA,MAAA,EAAe,IAAf,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,EAE5B,IAF4B,EAAA;;;AAS/B;AACe,iBADC,YAAA,CACD,WAAA,EAAA,IAAA,GAAgB,MAAhB,CAAA,MAAA,EAA+B,IAA/B,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,EAEZ,IAFY,EAAA;AAA+B,iBAsB9B,UAAA,CAtB8B,IAAA,EAuBtC,IAvBsC,GAuBtB,MAvBsB,EAAA,GAAA,EAAA,MAAA,CAAA,EAyB3C,IAzB2C,GAyB3B,MAzB2B,GAAA,SAAA;;;;AAsB9C;;AACwB,iBAoBR,QAAA,CApBQ,KAAA,EAqBf,IArBe,EAAA,EAAA,OAAA,EAAA,CAAA,IAAA,EAsBN,IAtBM,EAAA,GAAA,OAAA,EAAA,OAEL,CAFK,EAAA;EAErB,gBAAA,CAAA,EAAA,OAAA;CAAgB,CAAA,EAwBhB,IAxBgB,EAAA,GAAA,IAAA;;AAkBnB;;;;;AAkDgB,iBAAA,KAAK,CAAA,eAAc,IAAd,GAA8B,IAA9B,CAAA,CAAA,IAAA,EACb,MADa,EAAA,OAAA,EAAA,CAAA,UAEC,IAFD,GAEiB,IAFjB,CAAA,CAAA,IAAA,EAGX,CAHW,EAAA,MAAA,CAAA,EAIR,IAJQ,GAIQ,MAJR,EAAA,GAAA,MAAA,GAAA,OAAA,GAKK,CALL,GAAA,IAAA,CAAA,EAMlB,MANkB"}
@@ -0,0 +1,18 @@
1
+ import { i as Root } from "./definitions-Ca2P2viV.js";
2
+
3
+ //#region src/source/client/index.d.ts
4
+ interface SerializedPageTree {
5
+ $fumadocs_loader: 'page-tree';
6
+ data: object;
7
+ }
8
+ declare function deserializePageTree(serialized: SerializedPageTree): Root;
9
+ /**
10
+ * Deserialize loader data that is serialized by the server-side Fumadocs `loader()`, supported:
11
+ * - Page Tree
12
+ *
13
+ * other unrelated properties are kept in the output.
14
+ */
15
+ declare function useFumadocsLoader<V>(serialized: V): { [K in keyof V]: V[K] extends SerializedPageTree ? Root : V[K] };
16
+ //#endregion
17
+ export { deserializePageTree as n, useFumadocsLoader as r, SerializedPageTree as t };
18
+ //# sourceMappingURL=index-CmGSoB4T.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CmGSoB4T.d.ts","names":[],"sources":["../src/source/client/index.tsx"],"sourcesContent":[],"mappings":";;;UAIiB,kBAAA;;EAAA,IAAA,EAAA,MAAA;AAejB;AAoBgB,iBApBA,mBAAA,CAoBiB,UAAA,EApBe,kBAoBf,CAAA,EApBoC,IAoBpC;;;;;;;AACmC,iBADpD,iBACoD,CAAA,CAAA,CAAA,CAAA,UAAA,EADnB,CACmB,CAAA,EAAA,QAAE,MAAxD,CAAwD,GAApD,CAAoD,CAAlD,CAAkD,CAAA,SAAvC,kBAAuC,GAAlB,IAAkB,GAAF,CAAE,CAAA,CAAA,CAAA,EAAC"}
@@ -38,4 +38,4 @@ interface I18nConfig<Languages extends string = string> {
38
38
  declare function defineI18n<Languages extends string>(config: I18nConfig<Languages>): I18nConfig<Languages>;
39
39
  //#endregion
40
40
  export { defineI18n as n, I18nConfig as t };
41
- //# sourceMappingURL=index-BhVrX5J1.d.ts.map
41
+ //# sourceMappingURL=index-DxhhLscI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BhVrX5J1.d.ts","names":[],"sources":["../src/i18n/index.ts"],"sourcesContent":[],"mappings":";UAAiB;EAAA;;;;;EAyCD,SAAA,EAnCH,SAmCa,EAAA;EACL;;;EAClB,eAAA,EAhCgB,SAgChB;EAAU;;;;;;;;;;;;;;;;;;;;;;;qBALQ;;iBAGL,6CACN,WAAW,aAClB,WAAW"}
1
+ {"version":3,"file":"index-DxhhLscI.d.ts","names":[],"sources":["../src/i18n/index.ts"],"sourcesContent":[],"mappings":";UAAiB;EAAA;;;;;EAyCD,SAAA,EAnCH,SAmCa,EAAA;EACL;;;EAClB,eAAA,EAhCgB,SAgChB;EAAU;;;;;;;;;;;;;;;;;;;;;;;qBALQ;;iBAGL,6CACN,WAAW,aAClB,WAAW"}
@@ -1,5 +1,6 @@
1
- import { a as Separator, i as Root, n as Item, t as Folder } from "./definitions-DJAPG-2U.js";
2
- import { t as I18nConfig } from "./index-BhVrX5J1.js";
1
+ import { a as Separator, i as Root, n as Item, t as Folder } from "./definitions-Ca2P2viV.js";
2
+ import { t as I18nConfig } from "./index-DxhhLscI.js";
3
+ import { t as SerializedPageTree } from "./index-CmGSoB4T.js";
3
4
  import { ReactNode } from "react";
4
5
 
5
6
  //#region src/source/source.d.ts
@@ -307,7 +308,7 @@ interface LoaderOutput<Config$1 extends LoaderConfig> {
307
308
  /**
308
309
  * serialize page tree for non-RSC environments
309
310
  */
310
- serializePageTree: (tree: Root) => Promise<object>;
311
+ serializePageTree: (tree: Root) => Promise<SerializedPageTree>;
311
312
  }
312
313
  declare function createGetUrl(baseUrl: string, i18n?: I18nConfig): ResolvedLoaderConfig['url'];
313
314
  declare function loader<Config$1 extends SourceConfig, I18n extends I18nConfig | undefined = undefined>(source: Source<Config$1>, options: LoaderOptions<{
@@ -377,4 +378,4 @@ declare function joinPath(...paths: string[]): string;
377
378
  declare function slash(path: string): string;
378
379
  //#endregion
379
380
  export { PageData as A, ContentStorage as C, buildContentStorage as D, ContentStoragePageFile as E, _SourceUpdate_ as F, multiple as I, source as L, SourceConfig as M, VirtualFile as N, FileSystem as O, _ConfigUnion_ as P, update as R, createPageTreeBuilder as S, ContentStorageMetaFile as T, slugsPlugin as _, LoaderOptions as a, PageTreeOptions as b, LoaderPluginOption as c, ResolvedLoaderConfig as d, createGetUrl as f, slugsFromData as g, getSlugs as h, LoaderConfig as i, Source as j, MetaData as k, Meta as l, SlugFn as m, InferMetaType as n, LoaderOutput as o, loader as p, InferPageType as r, LoaderPlugin as s, path_d_exports as t, Page as u, PageTreeBuilder as v, ContentStorageFile as w, PageTreeTransformer as x, PageTreeBuilderContext as y };
380
- //# sourceMappingURL=index-Co_C8NEi.d.ts.map
381
+ //# sourceMappingURL=index-aE27-b16.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-aE27-b16.d.ts","names":[],"sources":["../src/source/source.ts","../src/source/storage/file-system.ts","../src/source/storage/content.ts","../src/source/page-tree/builder.ts","../src/source/plugins/slugs.ts","../src/source/plugins/icon.ts","../src/source/loader.ts","../src/source/path.ts"],"sourcesContent":[],"mappings":"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"}