@hanzo/docs-core 16.5.0 → 16.5.3

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 (262) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/dist/{advanced-BRT5Ij43.js → advanced-BH0syJ-M.js} +3 -4
  4. package/dist/{algolia-CQPXCnjV.js → algolia-C7Crg8-5.js} +2 -3
  5. package/dist/breadcrumb.d.ts +2 -3
  6. package/dist/breadcrumb.js +3 -4
  7. package/dist/{chunk-B-ezknvj.js → chunk-CaR5F9JI.js} +3 -3
  8. package/dist/content/github.d.ts +1 -2
  9. package/dist/content/github.js +1 -2
  10. package/dist/content/index.d.ts +3 -4
  11. package/dist/content/index.js +1 -2
  12. package/dist/content/mdx/preset-bundler.d.ts +9 -10
  13. package/dist/content/mdx/preset-bundler.js +2 -3
  14. package/dist/content/mdx/preset-runtime.d.ts +9 -10
  15. package/dist/content/mdx/preset-runtime.js +2 -3
  16. package/dist/content/toc.d.ts +1 -3
  17. package/dist/content/toc.js +4 -5
  18. package/dist/create-i18n-Cv3Cocbs.d.ts +51 -0
  19. package/dist/{definitions-DuxDer_c.d.ts → definitions-DSNTbAwC.d.ts} +1 -2
  20. package/dist/dynamic-link.d.ts +3 -4
  21. package/dist/dynamic-link.js +1 -3
  22. package/dist/{fetch-B5e9CFfN.js → fetch-HotVeLLF.js} +1 -2
  23. package/dist/framework/index.d.ts +5 -6
  24. package/dist/framework/index.js +18 -19
  25. package/dist/framework/next.d.ts +3 -4
  26. package/dist/framework/next.js +1 -2
  27. package/dist/framework/react-router.d.ts +3 -4
  28. package/dist/framework/react-router.js +1 -2
  29. package/dist/framework/tanstack.d.ts +3 -4
  30. package/dist/framework/tanstack.js +1 -2
  31. package/dist/framework/waku.d.ts +3 -4
  32. package/dist/framework/waku.js +1 -2
  33. package/dist/hast-utils-BmGqqmvo.js +15 -0
  34. package/dist/highlight/client.d.ts +2 -4
  35. package/dist/highlight/client.js +7 -13
  36. package/dist/highlight/config.d.ts +15 -0
  37. package/dist/highlight/config.js +18 -0
  38. package/dist/highlight/core/client.d.ts +31 -0
  39. package/dist/highlight/core/client.js +68 -0
  40. package/dist/highlight/core/index.d.ts +27 -0
  41. package/dist/highlight/core/index.js +69 -0
  42. package/dist/highlight/index.d.ts +34 -2
  43. package/dist/highlight/index.js +57 -2
  44. package/dist/i18n/index.d.ts +39 -1
  45. package/dist/i18n/index.js +1 -2
  46. package/dist/i18n/middleware.d.ts +2 -3
  47. package/dist/i18n/middleware.js +1 -2
  48. package/dist/{icon-BWwSDabM.js → icon-OtPFhyk1.js} +1 -2
  49. package/dist/link.d.ts +3 -4
  50. package/dist/link.js +1 -2
  51. package/dist/{mdast-utils-mc9-X-PK.js → mdast-utils-gJMY143g.js} +1 -2
  52. package/dist/mdx-plugins/codeblock-utils.d.ts +35 -1
  53. package/dist/mdx-plugins/codeblock-utils.js +1 -2
  54. package/dist/mdx-plugins/index.d.ts +18 -15
  55. package/dist/mdx-plugins/index.js +7 -5
  56. package/dist/mdx-plugins/rehype-code.core.d.ts +38 -0
  57. package/dist/mdx-plugins/rehype-code.core.js +104 -0
  58. package/dist/mdx-plugins/rehype-code.d.ts +18 -2
  59. package/dist/mdx-plugins/rehype-code.js +24 -3
  60. package/dist/mdx-plugins/rehype-toc.d.ts +16 -1
  61. package/dist/mdx-plugins/rehype-toc.js +127 -1
  62. package/dist/mdx-plugins/remark-admonition.d.ts +20 -1
  63. package/dist/mdx-plugins/remark-admonition.js +2 -3
  64. package/dist/mdx-plugins/remark-code-tab.d.ts +30 -1
  65. package/dist/mdx-plugins/remark-code-tab.js +4 -5
  66. package/dist/mdx-plugins/remark-directive-admonition.d.ts +34 -1
  67. package/dist/mdx-plugins/remark-directive-admonition.js +1 -2
  68. package/dist/mdx-plugins/remark-feedback-block.d.ts +51 -0
  69. package/dist/mdx-plugins/remark-feedback-block.js +47 -0
  70. package/dist/mdx-plugins/remark-gfm.d.ts +2 -2
  71. package/dist/mdx-plugins/remark-heading.d.ts +35 -1
  72. package/dist/mdx-plugins/remark-heading.js +2 -3
  73. package/dist/mdx-plugins/remark-image.d.ts +63 -1
  74. package/dist/mdx-plugins/remark-image.js +1 -2
  75. package/dist/mdx-plugins/remark-mdx-files.d.ts +55 -2
  76. package/dist/mdx-plugins/remark-mdx-files.js +103 -13
  77. package/dist/mdx-plugins/remark-mdx-mermaid.d.ts +15 -1
  78. package/dist/mdx-plugins/remark-mdx-mermaid.js +1 -2
  79. package/dist/mdx-plugins/remark-npm.d.ts +34 -1
  80. package/dist/mdx-plugins/remark-npm.js +1 -2
  81. package/dist/mdx-plugins/remark-steps.d.ts +26 -1
  82. package/dist/mdx-plugins/remark-steps.js +1 -2
  83. package/dist/mdx-plugins/remark-structure.d.ts +75 -1
  84. package/dist/mdx-plugins/remark-structure.js +7 -8
  85. package/dist/{mixedbread-DlByNYSd.js → mixedbread-Bx9drx9S.js} +6 -5
  86. package/dist/negotiation/index.d.ts +1 -2
  87. package/dist/negotiation/index.js +1 -2
  88. package/dist/{normalize-url-ChLsV26G.js → normalize-url-DUHbcuVM.js} +1 -2
  89. package/dist/{orama-cloud-DH3g37zc.js → orama-cloud-ByznDyOk.js} +6 -7
  90. package/dist/orama-cloud-legacy-BbgJnf5f.js +81 -0
  91. package/dist/page-tree/index.d.ts +3 -45
  92. package/dist/page-tree/index.js +1 -1
  93. package/dist/{index-2U6Tl4--.d.ts → path-B77y3W0_.d.ts} +111 -98
  94. package/dist/{path-DHIjrDBP.js → path-D0Bwm6Fs.js} +2 -3
  95. package/dist/{remove-undefined-Cfs4o_mM.js → remove-undefined-CJm9cyrC.js} +1 -2
  96. package/dist/search/algolia.d.ts +66 -2
  97. package/dist/search/algolia.js +1 -2
  98. package/dist/search/client.d.ts +30 -7
  99. package/dist/search/client.js +27 -22
  100. package/dist/search/index.d.ts +1 -2
  101. package/dist/search/index.js +41 -1
  102. package/dist/search/orama-cloud-legacy.d.ts +77 -0
  103. package/dist/search/orama-cloud-legacy.js +49 -0
  104. package/dist/search/orama-cloud.d.ts +5 -9
  105. package/dist/search/orama-cloud.js +1 -2
  106. package/dist/search/server.d.ts +87 -4
  107. package/dist/search/server.js +7 -8
  108. package/dist/source/client/index.d.ts +13 -11
  109. package/dist/source/client/index.js +22 -13
  110. package/dist/source/index.d.ts +5 -3
  111. package/dist/source/index.js +428 -333
  112. package/dist/source/plugins/lucide-icons.d.ts +5 -4
  113. package/dist/source/plugins/lucide-icons.js +2 -3
  114. package/dist/source/plugins/slugs.d.ts +24 -2
  115. package/dist/source/plugins/slugs.js +2 -3
  116. package/dist/source/plugins/status-badges.d.ts +52 -0
  117. package/dist/source/plugins/status-badges.js +54 -0
  118. package/dist/source/schema.d.ts +1 -3
  119. package/dist/source/schema.js +1 -2
  120. package/dist/{static-Dq8pA8Ay.js → static-DTxK4eHk.js} +5 -6
  121. package/dist/toc.d.ts +1 -2
  122. package/dist/toc.js +1 -2
  123. package/dist/{rehype-code-sM9Tq-r7.js → transformer-icon-BYedaeE8.js} +1 -96
  124. package/dist/transformer-icon-D7-6aFzt.d.ts +18 -0
  125. package/dist/types-BSnJn7kF.d.ts +6 -0
  126. package/dist/{util-CK2ykiif.d.ts → util-C60LmklF.d.ts} +1 -2
  127. package/dist/{util-s9piKHsk.js → util-De0ALHOx.js} +1 -2
  128. package/dist/utils/use-media-query.d.ts +1 -2
  129. package/dist/utils/use-media-query.js +1 -2
  130. package/dist/utils/use-on-change.d.ts +1 -2
  131. package/dist/utils/use-on-change.js +1 -2
  132. package/dist/{utils-DUvi2WkD.js → utils-Bc53B3CJ.js} +8 -7
  133. package/dist/utils-IgHyYnrz.d.ts +45 -0
  134. package/package.json +68 -38
  135. package/dist/advanced-BRT5Ij43.js.map +0 -1
  136. package/dist/algolia-CQPXCnjV.js.map +0 -1
  137. package/dist/algolia-Cc1y6qWl.d.ts +0 -68
  138. package/dist/algolia-Cc1y6qWl.d.ts.map +0 -1
  139. package/dist/breadcrumb.d.ts.map +0 -1
  140. package/dist/breadcrumb.js.map +0 -1
  141. package/dist/codeblock-utils-DDnYb8gi.d.ts +0 -37
  142. package/dist/codeblock-utils-DDnYb8gi.d.ts.map +0 -1
  143. package/dist/content/github.d.ts.map +0 -1
  144. package/dist/content/github.js.map +0 -1
  145. package/dist/content/index.d.ts.map +0 -1
  146. package/dist/content/index.js.map +0 -1
  147. package/dist/content/mdx/preset-bundler.d.ts.map +0 -1
  148. package/dist/content/mdx/preset-bundler.js.map +0 -1
  149. package/dist/content/mdx/preset-runtime.d.ts.map +0 -1
  150. package/dist/content/mdx/preset-runtime.js.map +0 -1
  151. package/dist/content/toc.d.ts.map +0 -1
  152. package/dist/content/toc.js.map +0 -1
  153. package/dist/definitions-DuxDer_c.d.ts.map +0 -1
  154. package/dist/dynamic-link.d.ts.map +0 -1
  155. package/dist/dynamic-link.js.map +0 -1
  156. package/dist/fetch-B5e9CFfN.js.map +0 -1
  157. package/dist/framework/index.d.ts.map +0 -1
  158. package/dist/framework/index.js.map +0 -1
  159. package/dist/framework/next.d.ts.map +0 -1
  160. package/dist/framework/next.js.map +0 -1
  161. package/dist/framework/react-router.d.ts.map +0 -1
  162. package/dist/framework/react-router.js.map +0 -1
  163. package/dist/framework/tanstack.d.ts.map +0 -1
  164. package/dist/framework/tanstack.js.map +0 -1
  165. package/dist/framework/waku.d.ts.map +0 -1
  166. package/dist/framework/waku.js.map +0 -1
  167. package/dist/highlight/client.d.ts.map +0 -1
  168. package/dist/highlight/client.js.map +0 -1
  169. package/dist/i18n/index.js.map +0 -1
  170. package/dist/i18n/middleware.d.ts.map +0 -1
  171. package/dist/i18n/middleware.js.map +0 -1
  172. package/dist/icon-BWwSDabM.js.map +0 -1
  173. package/dist/index-2U6Tl4--.d.ts.map +0 -1
  174. package/dist/index-Bw-DCOra.d.ts +0 -41
  175. package/dist/index-Bw-DCOra.d.ts.map +0 -1
  176. package/dist/link.d.ts.map +0 -1
  177. package/dist/link.js.map +0 -1
  178. package/dist/mdast-utils-mc9-X-PK.js.map +0 -1
  179. package/dist/mdx-plugins/codeblock-utils.js.map +0 -1
  180. package/dist/mdx-plugins/remark-admonition.js.map +0 -1
  181. package/dist/mdx-plugins/remark-code-tab.js.map +0 -1
  182. package/dist/mdx-plugins/remark-directive-admonition.js.map +0 -1
  183. package/dist/mdx-plugins/remark-heading.js.map +0 -1
  184. package/dist/mdx-plugins/remark-image.js.map +0 -1
  185. package/dist/mdx-plugins/remark-mdx-files.js.map +0 -1
  186. package/dist/mdx-plugins/remark-mdx-mermaid.js.map +0 -1
  187. package/dist/mdx-plugins/remark-npm.js.map +0 -1
  188. package/dist/mdx-plugins/remark-steps.js.map +0 -1
  189. package/dist/mdx-plugins/remark-structure.js.map +0 -1
  190. package/dist/mixedbread-DlByNYSd.js.map +0 -1
  191. package/dist/negotiation/index.d.ts.map +0 -1
  192. package/dist/negotiation/index.js.map +0 -1
  193. package/dist/normalize-url-ChLsV26G.js.map +0 -1
  194. package/dist/orama-cloud-DH3g37zc.js.map +0 -1
  195. package/dist/page-tree/index.d.ts.map +0 -1
  196. package/dist/path-DHIjrDBP.js.map +0 -1
  197. package/dist/rehype-code-sM9Tq-r7.js.map +0 -1
  198. package/dist/rehype-code-vVWG4-ej.d.ts +0 -58
  199. package/dist/rehype-code-vVWG4-ej.d.ts.map +0 -1
  200. package/dist/rehype-toc-DJvSyE0o.d.ts +0 -18
  201. package/dist/rehype-toc-DJvSyE0o.d.ts.map +0 -1
  202. package/dist/rehype-toc-DVwJcwvA.js +0 -143
  203. package/dist/rehype-toc-DVwJcwvA.js.map +0 -1
  204. package/dist/remark-admonition-DOwBWzsH.d.ts +0 -22
  205. package/dist/remark-admonition-DOwBWzsH.d.ts.map +0 -1
  206. package/dist/remark-code-tab-CXsYlims.d.ts +0 -32
  207. package/dist/remark-code-tab-CXsYlims.d.ts.map +0 -1
  208. package/dist/remark-directive-admonition-BCm_yiU9.d.ts +0 -36
  209. package/dist/remark-directive-admonition-BCm_yiU9.d.ts.map +0 -1
  210. package/dist/remark-gfm-CeWpMwyk.d.ts +0 -2
  211. package/dist/remark-heading-CXvCY0go.d.ts +0 -37
  212. package/dist/remark-heading-CXvCY0go.d.ts.map +0 -1
  213. package/dist/remark-image-CvUis4R1.d.ts +0 -65
  214. package/dist/remark-image-CvUis4R1.d.ts.map +0 -1
  215. package/dist/remark-mdx-files-DOYafA4x.d.ts +0 -42
  216. package/dist/remark-mdx-files-DOYafA4x.d.ts.map +0 -1
  217. package/dist/remark-mdx-mermaid-BdSUUiCG.d.ts +0 -17
  218. package/dist/remark-mdx-mermaid-BdSUUiCG.d.ts.map +0 -1
  219. package/dist/remark-npm-Bo08HqcQ.d.ts +0 -36
  220. package/dist/remark-npm-Bo08HqcQ.d.ts.map +0 -1
  221. package/dist/remark-steps-CHJN-rtm.d.ts +0 -28
  222. package/dist/remark-steps-CHJN-rtm.d.ts.map +0 -1
  223. package/dist/remark-structure-DGuWR82i.d.ts +0 -77
  224. package/dist/remark-structure-DGuWR82i.d.ts.map +0 -1
  225. package/dist/remove-undefined-Cfs4o_mM.js.map +0 -1
  226. package/dist/search/algolia.js.map +0 -1
  227. package/dist/search/client.d.ts.map +0 -1
  228. package/dist/search/client.js.map +0 -1
  229. package/dist/search/index.d.ts.map +0 -1
  230. package/dist/search/orama-cloud.d.ts.map +0 -1
  231. package/dist/search/orama-cloud.js.map +0 -1
  232. package/dist/search/server.js.map +0 -1
  233. package/dist/search-D6ChCLhY.js +0 -44
  234. package/dist/search-D6ChCLhY.js.map +0 -1
  235. package/dist/server-DmY4lGBs.d.ts +0 -133
  236. package/dist/server-DmY4lGBs.d.ts.map +0 -1
  237. package/dist/shiki-B5wNmyIZ.js +0 -80
  238. package/dist/shiki-B5wNmyIZ.js.map +0 -1
  239. package/dist/shiki-Dq3XIYAT.d.ts +0 -33
  240. package/dist/shiki-Dq3XIYAT.d.ts.map +0 -1
  241. package/dist/source/client/index.d.ts.map +0 -1
  242. package/dist/source/client/index.js.map +0 -1
  243. package/dist/source/index.js.map +0 -1
  244. package/dist/source/plugins/lucide-icons.d.ts.map +0 -1
  245. package/dist/source/plugins/lucide-icons.js.map +0 -1
  246. package/dist/source/plugins/slugs.js.map +0 -1
  247. package/dist/source/schema.d.ts.map +0 -1
  248. package/dist/source/schema.js.map +0 -1
  249. package/dist/static-Dq8pA8Ay.js.map +0 -1
  250. package/dist/toc.d.ts.map +0 -1
  251. package/dist/toc.js.map +0 -1
  252. package/dist/util-CK2ykiif.d.ts.map +0 -1
  253. package/dist/util-s9piKHsk.js.map +0 -1
  254. package/dist/utils/use-effect-event.d.ts +0 -11
  255. package/dist/utils/use-effect-event.d.ts.map +0 -1
  256. package/dist/utils/use-effect-event.js +0 -19
  257. package/dist/utils/use-effect-event.js.map +0 -1
  258. package/dist/utils/use-media-query.d.ts.map +0 -1
  259. package/dist/utils/use-media-query.js.map +0 -1
  260. package/dist/utils/use-on-change.d.ts.map +0 -1
  261. package/dist/utils/use-on-change.js.map +0 -1
  262. package/dist/utils-DUvi2WkD.js.map +0 -1
@@ -1,10 +1,12 @@
1
- import { a as Separator, i as Root, n as Item, t as Folder } from "./definitions-DuxDer_c.js";
2
- import { t as I18nConfig } from "./index-Bw-DCOra.js";
1
+ import { a as Separator, i as Root, n as Item, r as Node, t as Folder } from "./definitions-DSNTbAwC.js";
2
+ import { I18nConfig } from "./i18n/index.js";
3
+ import { SlugFn } from "./source/plugins/slugs.js";
4
+ import { SerializedPageTree } from "./source/client/index.js";
3
5
  import { ReactNode } from "react";
4
6
 
5
7
  //#region src/source/source.d.ts
6
- interface Source<Config$1 extends SourceConfig = SourceConfig> {
7
- files: VirtualFile<Config$1>[];
8
+ interface Source<Config extends SourceConfig = SourceConfig> {
9
+ files: VirtualFile<Config>[];
8
10
  }
9
11
  interface SourceConfig {
10
12
  pageData: PageData;
@@ -24,7 +26,7 @@ interface PageData {
24
26
  title?: string;
25
27
  description?: string | undefined;
26
28
  }
27
- type VirtualFile<Config$1 extends SourceConfig = SourceConfig> = VirtualPage<Config$1['pageData']> | VirtualMeta<Config$1['metaData']>;
29
+ type VirtualFile<Config extends SourceConfig = SourceConfig> = VirtualPage<Config['pageData']> | VirtualMeta<Config['metaData']>;
28
30
  interface BaseVirtualFile {
29
31
  /**
30
32
  * Virtualized path (relative to content directory)
@@ -58,31 +60,32 @@ type _ConfigUnion_<T extends Record<string, Source>> = { [K in keyof T]: T[K] ex
58
60
  };
59
61
  } : never }[keyof T];
60
62
  declare function multiple<T extends Record<string, Source>>(sources: T): Source<_ConfigUnion_<T>>;
61
- declare function source<Page$1 extends PageData, Meta$1 extends MetaData>(config: {
62
- pages: VirtualPage<Page$1>[];
63
- metas: VirtualMeta<Meta$1>[];
63
+ declare function source<Page extends PageData, Meta extends MetaData>(config: {
64
+ pages: VirtualPage<Page>[];
65
+ metas: VirtualMeta<Meta>[];
64
66
  }): Source<{
65
- pageData: Page$1;
66
- metaData: Meta$1;
67
+ pageData: Page;
68
+ metaData: Meta;
67
69
  }>;
68
- /**
69
- * update a source object in-place.
70
- */
71
- declare function update<Config$1 extends SourceConfig>(source: Source<Config$1>): {
72
- files<Page$1 extends PageData, Meta$1 extends MetaData>(fn: (files: VirtualFile<Config$1>[]) => (VirtualPage<Page$1> | VirtualMeta<Meta$1>)[]): typeof update<{
73
- pageData: Page$1;
74
- metaData: Meta$1;
70
+ interface _SourceUpdate_<Config extends SourceConfig> {
71
+ files: <Page extends PageData, Meta extends MetaData>(fn: (files: VirtualFile<Config>[]) => (VirtualPage<Page> | VirtualMeta<Meta>)[]) => _SourceUpdate_<{
72
+ pageData: Page;
73
+ metaData: Meta;
75
74
  }>;
76
- page<V extends PageData>(fn: (page: VirtualPage<Config$1["pageData"]>) => VirtualPage<V>): typeof update<{
75
+ page: <V extends PageData>(fn: (page: VirtualPage<Config['pageData']>) => VirtualPage<V>) => _SourceUpdate_<{
77
76
  pageData: V;
78
- metaData: Config$1["metaData"];
77
+ metaData: Config['metaData'];
79
78
  }>;
80
- meta<V extends MetaData>(fn: (meta: VirtualMeta<Config$1["metaData"]>) => VirtualMeta<V>): typeof update<{
81
- pageData: Config$1["pageData"];
79
+ meta: <V extends MetaData>(fn: (meta: VirtualMeta<Config['metaData']>) => VirtualMeta<V>) => _SourceUpdate_<{
80
+ pageData: Config['pageData'];
82
81
  metaData: V;
83
82
  }>;
84
- build(): Source<Config$1>;
85
- };
83
+ build: () => Source<Config>;
84
+ }
85
+ /**
86
+ * update a source object in-place.
87
+ */
88
+ declare function update<Config extends SourceConfig>(source: Source<Config>): _SourceUpdate_<Config>;
86
89
  //#endregion
87
90
  //#region src/source/storage/file-system.d.ts
88
91
  /**
@@ -110,49 +113,53 @@ declare class FileSystem<File> {
110
113
  }
111
114
  //#endregion
112
115
  //#region src/source/storage/content.d.ts
113
- type ContentStorage<Config$1 extends SourceConfig = SourceConfig> = FileSystem<ContentStorageFile<Config$1>>;
114
- type ContentStorageFile<Config$1 extends SourceConfig = SourceConfig> = ContentStorageMetaFile<Config$1> | ContentStoragePageFile<Config$1>;
115
- interface ContentStorageMetaFile<Config$1 extends SourceConfig = SourceConfig> {
116
+ type ContentStorage<Config extends SourceConfig = SourceConfig> = FileSystem<ContentStorageFile<Config>>;
117
+ type ContentStorageFile<Config extends SourceConfig = SourceConfig> = ContentStorageMetaFile<Config> | ContentStoragePageFile<Config>;
118
+ interface ContentStorageMetaFile<Config extends SourceConfig = SourceConfig> {
116
119
  path: string;
117
120
  absolutePath?: string;
118
121
  format: 'meta';
119
- data: Config$1['metaData'];
122
+ data: Config['metaData'];
120
123
  }
121
- interface ContentStoragePageFile<Config$1 extends SourceConfig = SourceConfig> {
124
+ interface ContentStoragePageFile<Config extends SourceConfig = SourceConfig> {
122
125
  path: string;
123
126
  absolutePath?: string;
124
127
  format: 'page';
125
128
  slugs: string[];
126
- data: Config$1['pageData'];
129
+ data: Config['pageData'];
127
130
  }
128
131
  /**
129
- * @param defaultLanguage - language to use when i18n is not configured.
130
- * @returns a map of locale and its content storage.
132
+ * convert input files into virtual file system.
131
133
  *
132
134
  * in the storage, locale codes are removed from file paths, hence the same file will have same file paths in every storage.
133
135
  */
134
- declare function buildContentStorage(loaderConfig: ResolvedLoaderConfig, defaultLanguage: string): Record<string, ContentStorage>;
136
+ declare function createContentStorageBuilder(loaderConfig: ResolvedLoaderConfig): {
137
+ i18n(): Record<string, ContentStorage>;
138
+ single(): ContentStorage;
139
+ };
135
140
  //#endregion
136
141
  //#region src/source/page-tree/builder.d.ts
137
- interface PageTreeBuilderContext<Config$1 extends SourceConfig = SourceConfig> {
138
- rootId: string;
139
- generateNodeId: () => string;
140
- options: PageTreeOptions;
141
- transformers: PageTreeTransformer<Config$1>[];
142
+ interface PageTreeBuilderContext<Config extends SourceConfig = SourceConfig> {
143
+ idPrefix: string;
144
+ noRef: boolean;
145
+ transformers: PageTreeTransformer<Config>[];
142
146
  builder: PageTreeBuilder;
143
- storage: ContentStorage<Config$1>;
147
+ storage: ContentStorage<Config>;
144
148
  getUrl: ResolvedLoaderConfig['url'];
145
- storages?: Record<string, ContentStorage<Config$1>>;
149
+ storages?: Record<string, ContentStorage<Config>>;
146
150
  locale?: string;
151
+ custom?: Record<string, unknown>;
147
152
  }
148
- interface PageTreeTransformer<Config$1 extends SourceConfig = SourceConfig> {
149
- file?: (this: PageTreeBuilderContext<Config$1>, node: Item, filePath?: string) => Item;
150
- folder?: (this: PageTreeBuilderContext<Config$1>, node: Folder, folderPath: string, metaPath?: string) => Folder;
151
- separator?: (this: PageTreeBuilderContext<Config$1>, node: Separator) => Separator;
152
- root?: (this: PageTreeBuilderContext<Config$1>, node: Root) => Root;
153
+ interface PageTreeTransformer<Config extends SourceConfig = SourceConfig> {
154
+ file?: (this: PageTreeBuilderContext<Config>, node: Item, filePath?: string) => Item;
155
+ folder?: (this: PageTreeBuilderContext<Config>, node: Folder, folderPath: string, metaPath?: string) => Folder;
156
+ separator?: (this: PageTreeBuilderContext<Config>, node: Separator) => Separator;
157
+ root?: (this: PageTreeBuilderContext<Config>, node: Root) => Root;
153
158
  }
154
- interface PageTreeOptions<Config$1 extends LoaderConfig = LoaderConfig> {
155
- id?: string;
159
+ interface PageTreeOptions<Config extends LoaderConfig = LoaderConfig> {
160
+ /** generate URL from page */
161
+ url: ResolvedLoaderConfig['url'];
162
+ idPrefix?: string;
156
163
  /**
157
164
  * Remove references to the file path of original nodes (`$ref`)
158
165
  *
@@ -168,33 +175,40 @@ interface PageTreeOptions<Config$1 extends LoaderConfig = LoaderConfig> {
168
175
  /**
169
176
  * Additional page tree transformers to apply
170
177
  */
171
- transformers?: PageTreeTransformer<Config$1['source']>[];
178
+ transformers?: PageTreeTransformer<Config['source']>[];
179
+ /** custom context */
180
+ context?: Record<string, unknown>;
172
181
  }
173
- interface PageTreeBuilder {
174
- build: (storage: ContentStorage, options?: PageTreeOptions) => Root;
175
- buildI18n: (storages: Record<string, ContentStorage>, options?: PageTreeOptions) => Record<string, Root>;
182
+ declare class PageTreeBuilder {
183
+ private readonly flattenPathToFullPath;
184
+ private readonly transformers;
185
+ /** virtual file path -> output page tree node (if cached) */
186
+ private readonly pathToNode;
187
+ /** unfinished nodes */
188
+ private readonly unfinished;
189
+ private readonly ownerMap;
190
+ private _nextId;
191
+ /** passed as additional information to transformers */
192
+ private readonly ctx;
193
+ private readonly storage;
194
+ constructor(input: ContentStorage | [locale: string, storages: Record<string, ContentStorage>], options: PageTreeOptions);
195
+ resolveFlattenPath(name: string, format: string): string;
196
+ /**
197
+ * try to register as the owner of `node`.
198
+ *
199
+ * when a node is referenced by multiple folders, this determines which folder they should belong to.
200
+ *
201
+ * @returns whether the owner owns the node.
202
+ */
203
+ private own;
204
+ private transferOwner;
205
+ private generateId;
206
+ buildPaths(paths: string[], filter?: (file: string) => boolean, reversed?: boolean): Node[];
207
+ private resolveFolderItem;
208
+ folder(folderPath: string): Folder | undefined;
209
+ file(path: string): Item | undefined;
210
+ root(id?: string, path?: string): Root;
176
211
  }
177
- declare function createPageTreeBuilder(loaderConfig: ResolvedLoaderConfig): PageTreeBuilder;
178
- //#endregion
179
- //#region src/source/plugins/slugs.d.ts
180
- /**
181
- * a function to generate slugs, return `undefined` to fallback to default generation.
182
- */
183
- type SlugFn<Config$1 extends LoaderConfig = LoaderConfig> = (file: ContentStoragePageFile<Config$1['source']>) => string[] | undefined;
184
- /**
185
- * Generate slugs for pages if missing
186
- */
187
- declare function slugsPlugin<Config$1 extends LoaderConfig = LoaderConfig>(slugFn?: SlugFn<Config$1>): LoaderPlugin<Config$1>;
188
- /**
189
- * Generate slugs from file data (e.g. frontmatter).
190
- *
191
- * @param key - the property name in file data to generate slugs, default to `slug`.
192
- */
193
- declare function slugsFromData<Config$1 extends LoaderConfig = LoaderConfig>(key?: string): SlugFn<Config$1>;
194
- /**
195
- * Convert file path into slugs, also encode non-ASCII characters, so they can work in pathname
196
- */
197
- declare function getSlugs(file: string): string[];
198
212
  //#endregion
199
213
  //#region src/source/plugins/icon.d.ts
200
214
  type IconResolver = (icon: string | undefined) => ReactNode;
@@ -211,7 +225,7 @@ interface LoaderOptions<C extends LoaderConfig = LoaderConfig> {
211
225
  /**
212
226
  * Additional options for page tree builder
213
227
  */
214
- pageTree?: PageTreeOptions<C>;
228
+ pageTree?: Partial<PageTreeOptions<C>>;
215
229
  plugins?: LoaderPluginOption[] | ((context: {
216
230
  typedPlugin: (plugin: LoaderPlugin<C>) => LoaderPlugin;
217
231
  }) => LoaderPluginOption[]);
@@ -222,7 +236,7 @@ interface ResolvedLoaderConfig {
222
236
  source: Source;
223
237
  url: (slugs: string[], locale?: string) => string;
224
238
  plugins?: LoaderPlugin[];
225
- pageTree?: PageTreeOptions;
239
+ pageTree?: Partial<PageTreeOptions>;
226
240
  i18n?: I18nConfig | undefined;
227
241
  }
228
242
  interface SharedFileInfo {
@@ -246,8 +260,8 @@ interface Page<Data = PageData> extends SharedFileInfo {
246
260
  interface Meta<Data = MetaData> extends SharedFileInfo {
247
261
  data: Data;
248
262
  }
249
- interface LoaderOutput<Config$1 extends LoaderConfig> {
250
- pageTree: Config$1['i18n'] extends I18nConfig ? Record<string, Root> : Root;
263
+ interface LoaderOutput<Config extends LoaderConfig> {
264
+ pageTree: Config['i18n'] extends I18nConfig ? Record<string, Root> : Root;
251
265
  getPageTree: (locale?: string) => Root;
252
266
  /**
253
267
  * get referenced page from href, supported:
@@ -262,7 +276,7 @@ interface LoaderOutput<Config$1 extends LoaderConfig> {
262
276
  */
263
277
  dir?: string;
264
278
  }) => {
265
- page: Page<Config$1['source']['pageData']>;
279
+ page: Page<Config['source']['pageData']>;
266
280
  hash?: string;
267
281
  } | undefined;
268
282
  /**
@@ -270,7 +284,7 @@ interface LoaderOutput<Config$1 extends LoaderConfig> {
270
284
  *
271
285
  * - relative file paths, like `./my/page.mdx`.
272
286
  */
273
- resolveHref: (href: string, parent: Page<Config$1['source']['pageData']>) => string;
287
+ resolveHref: (href: string, parent: Page<Config['source']['pageData']>) => string;
274
288
  /**
275
289
  * @internal
276
290
  */
@@ -278,24 +292,24 @@ interface LoaderOutput<Config$1 extends LoaderConfig> {
278
292
  /**
279
293
  * Get a list of pages from specified language
280
294
  *
281
- * @param language - If empty, list pages from all languages.
295
+ * @param language - If unspecified, list pages from all languages.
282
296
  */
283
- getPages: (language?: string) => Page<Config$1['source']['pageData']>[];
297
+ getPages: (language?: string) => Page<Config['source']['pageData']>[];
284
298
  /**
285
299
  * get each language and its pages, empty if i18n is not enabled.
286
300
  */
287
301
  getLanguages: () => {
288
302
  language: string;
289
- pages: Page<Config$1['source']['pageData']>[];
303
+ pages: Page<Config['source']['pageData']>[];
290
304
  }[];
291
305
  /**
292
306
  * Get page with slugs, the slugs can also be URI encoded.
293
307
  *
294
- * @param language - If empty, the default language will be used
308
+ * @param language - If unspecified, the default language will be used.
295
309
  */
296
- getPage: (slugs: string[] | undefined, language?: string) => Page<Config$1['source']['pageData']> | undefined;
297
- getNodePage: (node: Item, language?: string) => Page<Config$1['source']['pageData']> | undefined;
298
- getNodeMeta: (node: Folder, language?: string) => Meta<Config$1['source']['metaData']> | undefined;
310
+ getPage: (slugs: string[] | undefined, language?: string) => Page<Config['source']['pageData']> | undefined;
311
+ getNodePage: (node: Item, language?: string) => Page<Config['source']['pageData']> | undefined;
312
+ getNodeMeta: (node: Folder, language?: string) => Meta<Config['source']['metaData']> | undefined;
299
313
  /**
300
314
  * generate static params for Next.js SSG
301
315
  *
@@ -306,26 +320,26 @@ interface LoaderOutput<Config$1 extends LoaderConfig> {
306
320
  /**
307
321
  * serialize page tree for non-RSC environments
308
322
  */
309
- serializePageTree: (tree: Root) => Promise<object>;
323
+ serializePageTree: (tree: Root) => Promise<SerializedPageTree>;
310
324
  }
311
325
  declare function createGetUrl(baseUrl: string, i18n?: I18nConfig): ResolvedLoaderConfig['url'];
312
- declare function loader<Config$1 extends SourceConfig, I18n extends I18nConfig | undefined = undefined>(source: Source<Config$1>, options: LoaderOptions<{
313
- source: NoInfer<Config$1>;
326
+ declare function loader<Config extends SourceConfig, I18n extends I18nConfig | undefined = undefined>(source: Source<Config>, options: LoaderOptions<{
327
+ source: NoInfer<Config>;
314
328
  i18n: I18n;
315
329
  }>): LoaderOutput<{
316
- source: Config$1;
330
+ source: Config;
317
331
  i18n: I18n;
318
332
  }>;
319
- declare function loader<Config$1 extends SourceConfig, I18n extends I18nConfig | undefined = undefined>(options: LoaderOptions<{
320
- source: NoInfer<Config$1>;
333
+ declare function loader<Config extends SourceConfig, I18n extends I18nConfig | undefined = undefined>(options: LoaderOptions<{
334
+ source: NoInfer<Config>;
321
335
  i18n: I18n;
322
336
  }> & {
323
- source: Source<Config$1>;
337
+ source: Source<Config>;
324
338
  }): LoaderOutput<{
325
- source: Config$1;
339
+ source: Config;
326
340
  i18n: I18n;
327
341
  }>;
328
- interface LoaderPlugin<Config$1 extends LoaderConfig = LoaderConfig> {
342
+ interface LoaderPlugin<Config extends LoaderConfig = LoaderConfig> {
329
343
  name?: string;
330
344
  /**
331
345
  * Change the order of plugin:
@@ -341,14 +355,14 @@ interface LoaderPlugin<Config$1 extends LoaderConfig = LoaderConfig> {
341
355
  * transform the storage after loading
342
356
  */
343
357
  transformStorage?: (context: {
344
- storage: ContentStorage<Config$1['source']>;
358
+ storage: ContentStorage<Config['source']>;
345
359
  }) => void;
346
360
  /**
347
361
  * transform the generated page tree
348
362
  */
349
- transformPageTree?: PageTreeTransformer<Config$1['source']>;
363
+ transformPageTree?: PageTreeTransformer<Config['source']>;
350
364
  }
351
- type LoaderPluginOption<Config$1 extends LoaderConfig = LoaderConfig> = LoaderPlugin<Config$1> | LoaderPluginOption<Config$1>[] | undefined;
365
+ type LoaderPluginOption<Config extends LoaderConfig = LoaderConfig> = LoaderPlugin<Config> | LoaderPluginOption<Config>[] | undefined;
352
366
  type InferPageType<Utils extends LoaderOutput<any>> = Utils extends LoaderOutput<infer Config> ? Page<Config['source']['pageData']> : never;
353
367
  type InferMetaType<Utils extends LoaderOutput<any>> = Utils extends LoaderOutput<infer Config> ? Meta<Config['source']['metaData']> : never;
354
368
  declare namespace path_d_exports {
@@ -375,5 +389,4 @@ declare function splitPath(path: string): string[];
375
389
  declare function joinPath(...paths: string[]): string;
376
390
  declare function slash(path: string): string;
377
391
  //#endregion
378
- export { PageData as A, ContentStorage as C, buildContentStorage as D, ContentStoragePageFile as E, multiple as F, source as I, update as L, SourceConfig as M, VirtualFile as N, FileSystem as O, _ConfigUnion_ as P, 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 };
379
- //# sourceMappingURL=index-2U6Tl4--.d.ts.map
392
+ export { _SourceUpdate_ as A, FileSystem as C, SourceConfig as D, Source as E, source as M, update as N, VirtualFile as O, createContentStorageBuilder as S, PageData as T, PageTreeTransformer as _, LoaderOptions as a, ContentStorageMetaFile as b, LoaderPluginOption as c, ResolvedLoaderConfig as d, createGetUrl as f, PageTreeOptions as g, PageTreeBuilderContext as h, LoaderConfig as i, multiple as j, _ConfigUnion_ as k, Meta as l, PageTreeBuilder 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, ContentStorage as v, MetaData as w, ContentStoragePageFile as x, ContentStorageFile as y };
@@ -1,4 +1,4 @@
1
- import { n as __exportAll } from "./chunk-B-ezknvj.js";
1
+ import { n as __exportAll } from "./chunk-CaR5F9JI.js";
2
2
 
3
3
  //#region src/source/path.ts
4
4
  var path_exports = /* @__PURE__ */ __exportAll({
@@ -56,5 +56,4 @@ function slash(path) {
56
56
  }
57
57
 
58
58
  //#endregion
59
- export { path_exports as a, joinPath as i, dirname as n, slash as o, extname as r, splitPath as s, basename as t };
60
- //# sourceMappingURL=path-DHIjrDBP.js.map
59
+ export { path_exports as a, joinPath as i, dirname as n, slash as o, extname as r, splitPath as s, basename as t };
@@ -15,5 +15,4 @@ function removeUndefined(value, deep = false) {
15
15
  }
16
16
 
17
17
  //#endregion
18
- export { removeUndefined as t };
19
- //# sourceMappingURL=remove-undefined-Cfs4o_mM.js.map
18
+ export { removeUndefined as t };
@@ -1,3 +1,67 @@
1
- import "../remark-structure-DGuWR82i.js";
2
- import { a as sync, i as setIndexSettings, n as DocumentRecord, o as updateDocuments, r as SyncOptions, t as BaseIndex } from "../algolia-Cc1y6qWl.js";
1
+ import { StructuredData } from "../mdx-plugins/remark-structure.js";
2
+ import { Algoliasearch } from "algoliasearch";
3
+
4
+ //#region src/search/algolia.d.ts
5
+ interface DocumentRecord {
6
+ /**
7
+ * The ID of document, must be unique
8
+ */
9
+ _id: string;
10
+ title: string;
11
+ description?: string;
12
+ breadcrumbs?: string[];
13
+ /**
14
+ * URL to the page
15
+ */
16
+ url: string;
17
+ structured: StructuredData;
18
+ /**
19
+ * Tag to filter results
20
+ */
21
+ tag?: string;
22
+ /**
23
+ * Data to be added to each section index
24
+ */
25
+ extra_data?: object;
26
+ }
27
+ interface SyncOptions {
28
+ /**
29
+ * Index Name for documents.
30
+ */
31
+ indexName?: string;
32
+ /**
33
+ * Search indexes
34
+ */
35
+ documents: DocumentRecord[];
36
+ }
37
+ /**
38
+ * Update index settings and replace all objects
39
+ *
40
+ * @param client - Algolia Admin Client
41
+ * @param options - Index Options
42
+ */
43
+ declare function sync(client: Algoliasearch, options: SyncOptions): Promise<void>;
44
+ declare function setIndexSettings(client: Algoliasearch, indexName: string): Promise<void>;
45
+ declare function updateDocuments(client: Algoliasearch, indexName: string, documents: DocumentRecord[]): Promise<void>;
46
+ interface BaseIndex {
47
+ objectID: string;
48
+ title: string;
49
+ url: string;
50
+ tag?: string;
51
+ /**
52
+ * The id of page, used for distinct
53
+ */
54
+ page_id: string;
55
+ /**
56
+ * Heading content
57
+ */
58
+ section?: string;
59
+ /**
60
+ * Heading (anchor) id
61
+ */
62
+ section_id?: string;
63
+ breadcrumbs?: string[];
64
+ content: string;
65
+ }
66
+ //#endregion
3
67
  export { BaseIndex, DocumentRecord, SyncOptions, setIndexSettings, sync, updateDocuments };
@@ -73,5 +73,4 @@ async function updateDocuments(client, indexName, documents) {
73
73
  }
74
74
 
75
75
  //#endregion
76
- export { setIndexSettings, sync, updateDocuments };
77
- //# sourceMappingURL=algolia.js.map
76
+ export { setIndexSettings, sync, updateDocuments };
@@ -1,13 +1,15 @@
1
- import "../definitions-DuxDer_c.js";
2
- import "../remark-structure-DGuWR82i.js";
3
- import { t as BaseIndex } from "../algolia-Cc1y6qWl.js";
1
+ import "../definitions-DSNTbAwC.js";
2
+ import "../utils-IgHyYnrz.js";
3
+ import { BaseIndex } from "./algolia.js";
4
4
  import { SortedResult } from "./index.js";
5
- import "../server-DmY4lGBs.js";
6
- import "../index-2U6Tl4--.js";
5
+ import "../create-i18n-Cv3Cocbs.js";
6
+ import "../path-B77y3W0_.js";
7
+ import "./server.js";
7
8
  import { DependencyList } from "react";
8
9
  import { AnyOrama } from "@orama/orama";
9
10
  import { LiteClient, SearchResponse } from "algoliasearch/lite";
10
11
  import { OramaCloud, OramaCloudSearchParams } from "@orama/core";
12
+ import { ClientSearchParams, OramaClient } from "@oramacloud/client";
11
13
  import Mixedbread from "@mixedbread/sdk";
12
14
 
13
15
  //#region src/search/client/fetch.d.ts
@@ -81,6 +83,26 @@ interface OramaCloudOptions {
81
83
  locale?: string;
82
84
  }
83
85
  //#endregion
86
+ //#region src/search/client/orama-cloud-legacy.d.ts
87
+ interface OramaCloudLegacyOptions {
88
+ client: OramaClient;
89
+ /**
90
+ * The type of your index.
91
+ *
92
+ * You can set it to `crawler` if you use crawler instead of the JSON index with schema provided by Hanzo Docs
93
+ */
94
+ index?: 'default' | 'crawler';
95
+ params?: ClientSearchParams;
96
+ /**
97
+ * Filter results with specific tag.
98
+ */
99
+ tag?: string;
100
+ /**
101
+ * Filter by locale (unsupported at the moment)
102
+ */
103
+ locale?: string;
104
+ }
105
+ //#endregion
84
106
  //#region src/search/client/mixedbread.d.ts
85
107
  interface MixedbreadOptions {
86
108
  /**
@@ -120,6 +142,8 @@ type Client = ({
120
142
  } & AlgoliaOptions) | ({
121
143
  type: 'orama-cloud';
122
144
  } & OramaCloudOptions) | ({
145
+ type: 'orama-cloud-legacy';
146
+ } & OramaCloudLegacyOptions) | ({
123
147
  type: 'mixedbread';
124
148
  } & MixedbreadOptions);
125
149
  /**
@@ -142,5 +166,4 @@ declare function useDocsSearch(clientOptions: Client & {
142
166
  allowEmpty?: boolean;
143
167
  }, deps?: DependencyList): UseDocsSearch;
144
168
  //#endregion
145
- export { type AlgoliaOptions, Client, type FetchOptions, type OramaCloudOptions, type StaticOptions, useDocsSearch };
146
- //# sourceMappingURL=client.d.ts.map
169
+ export { type AlgoliaOptions, Client, type FetchOptions, type OramaCloudOptions, type StaticOptions, useDocsSearch };
@@ -52,27 +52,33 @@ function useDocsSearch(clientOptions, deps) {
52
52
  };
53
53
  async function run() {
54
54
  if (debouncedValue.length === 0 && !allowEmpty) return "empty";
55
- if (client.type === "fetch") {
56
- const { fetchDocs } = await import("../fetch-B5e9CFfN.js");
57
- return fetchDocs(debouncedValue, client);
55
+ switch (client.type) {
56
+ case "fetch": {
57
+ const { fetchDocs } = await import("../fetch-HotVeLLF.js");
58
+ return fetchDocs(debouncedValue, client);
59
+ }
60
+ case "algolia": {
61
+ const { searchDocs } = await import("../algolia-C7Crg8-5.js");
62
+ return searchDocs(debouncedValue, client);
63
+ }
64
+ case "orama-cloud": {
65
+ const { searchDocs } = await import("../orama-cloud-ByznDyOk.js");
66
+ return searchDocs(debouncedValue, client);
67
+ }
68
+ case "orama-cloud-legacy": {
69
+ const { searchDocs } = await import("../orama-cloud-legacy-BbgJnf5f.js");
70
+ return searchDocs(debouncedValue, client);
71
+ }
72
+ case "mixedbread": {
73
+ const { search } = await import("../mixedbread-Bx9drx9S.js");
74
+ return search(debouncedValue, client);
75
+ }
76
+ case "static": {
77
+ const { search } = await import("../static-DTxK4eHk.js");
78
+ return search(debouncedValue, client);
79
+ }
80
+ default: throw new Error("unknown search client");
58
81
  }
59
- if (client.type === "algolia") {
60
- const { searchDocs } = await import("../algolia-CQPXCnjV.js");
61
- return searchDocs(debouncedValue, client);
62
- }
63
- if (client.type === "orama-cloud") {
64
- const { searchDocs } = await import("../orama-cloud-DH3g37zc.js");
65
- return searchDocs(debouncedValue, client);
66
- }
67
- if (client.type === "static") {
68
- const { search: search$1 } = await import("../static-Dq8pA8Ay.js");
69
- return search$1(debouncedValue, client);
70
- }
71
- if (client.type === "mixedbread") {
72
- const { search: search$1 } = await import("../mixedbread-DlByNYSd.js");
73
- return search$1(debouncedValue, client);
74
- }
75
- throw new Error("unknown search client");
76
82
  }
77
83
  run().then((res) => {
78
84
  if (interrupt) return;
@@ -96,5 +102,4 @@ function useDocsSearch(clientOptions, deps) {
96
102
  }
97
103
 
98
104
  //#endregion
99
- export { useDocsSearch };
100
- //# sourceMappingURL=client.js.map
105
+ export { useDocsSearch };
@@ -24,5 +24,4 @@ declare function createContentHighlighter(query: string | RegExp): {
24
24
  highlight(content: string): HighlightedText[];
25
25
  };
26
26
  //#endregion
27
- export { HighlightedText, ReactSortedResult, SortedResult, createContentHighlighter };
28
- //# sourceMappingURL=index.d.ts.map
27
+ export { HighlightedText, ReactSortedResult, SortedResult, createContentHighlighter };
@@ -1,3 +1,43 @@
1
- import { t as createContentHighlighter } from "../search-D6ChCLhY.js";
1
+ //#region src/search/index.ts
2
+ function escapeRegExp(input) {
3
+ return input.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4
+ }
5
+ function buildRegexFromQuery(q) {
6
+ const trimmed = q.trim();
7
+ if (trimmed.length === 0) return null;
8
+ const terms = Array.from(new Set(trimmed.split(/\s+/).map((t) => t.trim()).filter(Boolean)));
9
+ if (terms.length === 0) return null;
10
+ const escaped = terms.map(escapeRegExp).join("|");
11
+ return new RegExp(`(${escaped})`, "gi");
12
+ }
13
+ function createContentHighlighter(query) {
14
+ const regex = typeof query === "string" ? buildRegexFromQuery(query) : query;
15
+ return { highlight(content) {
16
+ if (!regex) return [{
17
+ type: "text",
18
+ content
19
+ }];
20
+ const out = [];
21
+ let i = 0;
22
+ for (const match of content.matchAll(regex)) {
23
+ if (i < match.index) out.push({
24
+ type: "text",
25
+ content: content.substring(i, match.index)
26
+ });
27
+ out.push({
28
+ type: "text",
29
+ content: match[0],
30
+ styles: { highlight: true }
31
+ });
32
+ i = match.index + match[0].length;
33
+ }
34
+ if (i < content.length) out.push({
35
+ type: "text",
36
+ content: content.substring(i)
37
+ });
38
+ return out;
39
+ } };
40
+ }
2
41
 
42
+ //#endregion
3
43
  export { createContentHighlighter };