@fumadocs/base-ui 16.6.9 → 16.6.11

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 (183) hide show
  1. package/css/generated/home.css +36 -0
  2. package/dist/_virtual/_rolldown/runtime.js +6 -11
  3. package/dist/components/accordion.js +2 -4
  4. package/dist/components/accordion.js.map +1 -1
  5. package/dist/components/banner.js +2 -4
  6. package/dist/components/banner.js.map +1 -1
  7. package/dist/components/callout.js +1 -2
  8. package/dist/components/callout.js.map +1 -1
  9. package/dist/components/card.js +1 -2
  10. package/dist/components/card.js.map +1 -1
  11. package/dist/components/codeblock.js +2 -4
  12. package/dist/components/codeblock.js.map +1 -1
  13. package/dist/components/codeblock.rsc.js +5 -6
  14. package/dist/components/codeblock.rsc.js.map +1 -1
  15. package/dist/components/dialog/search-algolia.d.ts +0 -1
  16. package/dist/components/dialog/search-algolia.d.ts.map +1 -1
  17. package/dist/components/dialog/search-algolia.js +2 -4
  18. package/dist/components/dialog/search-algolia.js.map +1 -1
  19. package/dist/components/dialog/search-default.d.ts +0 -1
  20. package/dist/components/dialog/search-default.d.ts.map +1 -1
  21. package/dist/components/dialog/search-default.js +2 -4
  22. package/dist/components/dialog/search-default.js.map +1 -1
  23. package/dist/components/dialog/search-orama.d.ts +0 -1
  24. package/dist/components/dialog/search-orama.d.ts.map +1 -1
  25. package/dist/components/dialog/search-orama.js +2 -4
  26. package/dist/components/dialog/search-orama.js.map +1 -1
  27. package/dist/components/dialog/search.js +2 -4
  28. package/dist/components/dialog/search.js.map +1 -1
  29. package/dist/components/dynamic-codeblock.core.js +2 -4
  30. package/dist/components/dynamic-codeblock.core.js.map +1 -1
  31. package/dist/components/dynamic-codeblock.js +2 -4
  32. package/dist/components/dynamic-codeblock.js.map +1 -1
  33. package/dist/components/files.js +2 -4
  34. package/dist/components/files.js.map +1 -1
  35. package/dist/components/github-info.js +1 -2
  36. package/dist/components/github-info.js.map +1 -1
  37. package/dist/components/heading.js +1 -2
  38. package/dist/components/heading.js.map +1 -1
  39. package/dist/components/image-zoom.js +3 -5
  40. package/dist/components/image-zoom.js.map +1 -1
  41. package/dist/components/inline-toc.js +2 -4
  42. package/dist/components/inline-toc.js.map +1 -1
  43. package/dist/components/sidebar/base.js +2 -4
  44. package/dist/components/sidebar/base.js.map +1 -1
  45. package/dist/components/sidebar/link-item.js +2 -4
  46. package/dist/components/sidebar/link-item.js.map +1 -1
  47. package/dist/components/sidebar/page-tree.js +1 -2
  48. package/dist/components/sidebar/page-tree.js.map +1 -1
  49. package/dist/components/sidebar/tabs/dropdown.js +2 -4
  50. package/dist/components/sidebar/tabs/dropdown.js.map +1 -1
  51. package/dist/components/sidebar/tabs/index.js +1 -2
  52. package/dist/components/sidebar/tabs/index.js.map +1 -1
  53. package/dist/components/steps.js +1 -2
  54. package/dist/components/steps.js.map +1 -1
  55. package/dist/components/tabs.js +2 -4
  56. package/dist/components/tabs.js.map +1 -1
  57. package/dist/components/toc/clerk.js +2 -4
  58. package/dist/components/toc/clerk.js.map +1 -1
  59. package/dist/components/toc/default.js +2 -4
  60. package/dist/components/toc/default.js.map +1 -1
  61. package/dist/components/toc/index.js +2 -4
  62. package/dist/components/toc/index.js.map +1 -1
  63. package/dist/components/type-table.js +2 -4
  64. package/dist/components/type-table.js.map +1 -1
  65. package/dist/components/ui/accordion.js +2 -4
  66. package/dist/components/ui/accordion.js.map +1 -1
  67. package/dist/components/ui/button.d.ts +1 -1
  68. package/dist/components/ui/button.js +1 -2
  69. package/dist/components/ui/button.js.map +1 -1
  70. package/dist/components/ui/collapsible.js +2 -4
  71. package/dist/components/ui/collapsible.js.map +1 -1
  72. package/dist/components/ui/navigation-menu.js +2 -4
  73. package/dist/components/ui/navigation-menu.js.map +1 -1
  74. package/dist/components/ui/popover.js +2 -4
  75. package/dist/components/ui/popover.js.map +1 -1
  76. package/dist/components/ui/scroll-area.js +1 -2
  77. package/dist/components/ui/scroll-area.js.map +1 -1
  78. package/dist/components/ui/tabs.js +2 -4
  79. package/dist/components/ui/tabs.js.map +1 -1
  80. package/dist/contexts/i18n.js +2 -4
  81. package/dist/contexts/i18n.js.map +1 -1
  82. package/dist/contexts/search.js +2 -4
  83. package/dist/contexts/search.js.map +1 -1
  84. package/dist/contexts/tree.js +2 -4
  85. package/dist/contexts/tree.js.map +1 -1
  86. package/dist/i18n.js +1 -2
  87. package/dist/i18n.js.map +1 -1
  88. package/dist/layouts/docs/client.js +2 -4
  89. package/dist/layouts/docs/client.js.map +1 -1
  90. package/dist/layouts/docs/index.js +1 -2
  91. package/dist/layouts/docs/index.js.map +1 -1
  92. package/dist/layouts/docs/page/client.js +2 -4
  93. package/dist/layouts/docs/page/client.js.map +1 -1
  94. package/dist/layouts/docs/page/index.js +1 -2
  95. package/dist/layouts/docs/page/index.js.map +1 -1
  96. package/dist/layouts/docs/sidebar.d.ts +0 -1
  97. package/dist/layouts/docs/sidebar.d.ts.map +1 -1
  98. package/dist/layouts/docs/sidebar.js +2 -4
  99. package/dist/layouts/docs/sidebar.js.map +1 -1
  100. package/dist/layouts/flux/index.js +2 -4
  101. package/dist/layouts/flux/index.js.map +1 -1
  102. package/dist/layouts/flux/page/client.js +2 -4
  103. package/dist/layouts/flux/page/client.js.map +1 -1
  104. package/dist/layouts/flux/page/index.js +1 -2
  105. package/dist/layouts/flux/page/index.js.map +1 -1
  106. package/dist/layouts/flux/sidebar.d.ts +0 -1
  107. package/dist/layouts/flux/sidebar.d.ts.map +1 -1
  108. package/dist/layouts/flux/sidebar.js +2 -4
  109. package/dist/layouts/flux/sidebar.js.map +1 -1
  110. package/dist/layouts/flux/tab-dropdown.js +2 -4
  111. package/dist/layouts/flux/tab-dropdown.js.map +1 -1
  112. package/dist/layouts/home/client.d.ts +1 -1
  113. package/dist/layouts/home/client.js +3 -5
  114. package/dist/layouts/home/client.js.map +1 -1
  115. package/dist/layouts/home/index.js +1 -2
  116. package/dist/layouts/home/index.js.map +1 -1
  117. package/dist/layouts/home/navbar.js +2 -4
  118. package/dist/layouts/home/navbar.js.map +1 -1
  119. package/dist/layouts/home/not-found.d.ts +10 -0
  120. package/dist/layouts/home/not-found.d.ts.map +1 -0
  121. package/dist/layouts/home/not-found.js +40 -0
  122. package/dist/layouts/home/not-found.js.map +1 -0
  123. package/dist/layouts/notebook/client.d.ts +1 -1
  124. package/dist/layouts/notebook/client.d.ts.map +1 -1
  125. package/dist/layouts/notebook/client.js +2 -4
  126. package/dist/layouts/notebook/client.js.map +1 -1
  127. package/dist/layouts/notebook/index.js +1 -2
  128. package/dist/layouts/notebook/index.js.map +1 -1
  129. package/dist/layouts/notebook/page/client.js +2 -4
  130. package/dist/layouts/notebook/page/client.js.map +1 -1
  131. package/dist/layouts/notebook/page/index.js +1 -2
  132. package/dist/layouts/notebook/page/index.js.map +1 -1
  133. package/dist/layouts/notebook/sidebar.d.ts +0 -1
  134. package/dist/layouts/notebook/sidebar.d.ts.map +1 -1
  135. package/dist/layouts/notebook/sidebar.js +2 -4
  136. package/dist/layouts/notebook/sidebar.js.map +1 -1
  137. package/dist/layouts/shared/index.d.ts +1 -1
  138. package/dist/layouts/shared/index.d.ts.map +1 -1
  139. package/dist/layouts/shared/index.js +1 -2
  140. package/dist/layouts/shared/index.js.map +1 -1
  141. package/dist/layouts/shared/language-toggle.js +2 -4
  142. package/dist/layouts/shared/language-toggle.js.map +1 -1
  143. package/dist/layouts/shared/search-toggle.js +2 -4
  144. package/dist/layouts/shared/search-toggle.js.map +1 -1
  145. package/dist/layouts/shared/theme-toggle.js +2 -4
  146. package/dist/layouts/shared/theme-toggle.js.map +1 -1
  147. package/dist/mdx.js +1 -2
  148. package/dist/mdx.js.map +1 -1
  149. package/dist/mdx.server.js +1 -2
  150. package/dist/mdx.server.js.map +1 -1
  151. package/dist/og/takumi.js +1 -2
  152. package/dist/og/takumi.js.map +1 -1
  153. package/dist/og.js +1 -2
  154. package/dist/og.js.map +1 -1
  155. package/dist/page.js +2 -4
  156. package/dist/page.js.map +1 -1
  157. package/dist/provider/base.js +2 -4
  158. package/dist/provider/base.js.map +1 -1
  159. package/dist/provider/next.js +2 -4
  160. package/dist/provider/next.js.map +1 -1
  161. package/dist/provider/react-router.js +2 -4
  162. package/dist/provider/react-router.js.map +1 -1
  163. package/dist/provider/tanstack.js +2 -4
  164. package/dist/provider/tanstack.js.map +1 -1
  165. package/dist/provider/waku.js +2 -4
  166. package/dist/provider/waku.js.map +1 -1
  167. package/dist/style.css +26 -0
  168. package/dist/tailwind/typography.js +1 -2
  169. package/dist/utils/cn.js +1 -2
  170. package/dist/utils/link-item.js +2 -4
  171. package/dist/utils/link-item.js.map +1 -1
  172. package/dist/utils/merge-refs.js +1 -1
  173. package/dist/utils/urls.js +1 -1
  174. package/dist/utils/use-copy-button.js +2 -4
  175. package/dist/utils/use-copy-button.js.map +1 -1
  176. package/dist/utils/use-footer-items.js +2 -4
  177. package/dist/utils/use-footer-items.js.map +1 -1
  178. package/dist/utils/use-is-scroll-top.js +2 -4
  179. package/dist/utils/use-is-scroll-top.js.map +1 -1
  180. package/package.json +11 -7
  181. package/dist/components/image-zoom-DGvp66QF.css +0 -80
  182. package/dist/components/image-zoom-DGvp66QF.css.map +0 -1
  183. package/dist/components/image-zoom2.js +0 -1
@@ -15,10 +15,12 @@
15
15
  @source inline("[&_svg]:size-5.5");
16
16
  @source inline("[--fd-layout-width:1400px]");
17
17
  @source inline("always");
18
+ @source inline("are");
18
19
  @source inline("aria-label");
19
20
  @source inline("as");
20
21
  @source inline("backdrop-blur-lg");
21
22
  @source inline("banner");
23
+ @source inline("been");
22
24
  @source inline("bg-fd-background/80");
23
25
  @source inline("bg-fd-card");
24
26
  @source inline("bg-fd-muted");
@@ -38,6 +40,7 @@
38
40
  @source inline("const");
39
41
  @source inline("createContext");
40
42
  @source inline("custom");
43
+ @source inline("customise");
41
44
  @source inline("cva");
42
45
  @source inline("data-[active=true]:font-medium");
43
46
  @source inline("data-[active=true]:text-fd-primary");
@@ -48,6 +51,7 @@
48
51
  @source inline("data-popup-open:text-fd-primary");
49
52
  @source inline("data-starting-style:opacity-0");
50
53
  @source inline("data-starting-style:scale-90");
54
+ @source inline("default");
51
55
  @source inline("defaultVariants");
52
56
  @source inline("div");
53
57
  @source inline("duration-(--duration)");
@@ -65,8 +69,11 @@
65
69
  @source inline("flex-1");
66
70
  @source inline("flex-col");
67
71
  @source inline("flex-row");
72
+ @source inline("font-bold");
68
73
  @source inline("font-medium");
69
74
  @source inline("font-semibold");
75
+ @source inline("for");
76
+ @source inline("found");
70
77
  @source inline("from");
71
78
  @source inline("fumadocs-core/link");
72
79
  @source inline("function");
@@ -74,6 +81,7 @@
74
81
  @source inline("gap-1.5");
75
82
  @source inline("gap-2");
76
83
  @source inline("gap-2.5");
84
+ @source inline("gap-4");
77
85
  @source inline("ghost");
78
86
  @source inline("githubUrl");
79
87
  @source inline("grid");
@@ -83,6 +91,8 @@
83
91
  @source inline("h-(--popup-height)");
84
92
  @source inline("h-(--positioner-height)");
85
93
  @source inline("h-14");
94
+ @source inline("had");
95
+ @source inline("have");
86
96
  @source inline("header");
87
97
  @source inline("hideIfDisabled");
88
98
  @source inline("hover:bg-fd-accent/80");
@@ -97,10 +107,13 @@
97
107
  @source inline("in");
98
108
  @source inline("inline-flex");
99
109
  @source inline("interface");
110
+ @source inline("is");
100
111
  @source inline("isTop");
101
112
  @source inline("isTransparent");
102
113
  @source inline("item");
103
114
  @source inline("items-center");
115
+ @source inline("its");
116
+ @source inline("justify-center");
104
117
  @source inline("justify-end");
105
118
  @source inline("key");
106
119
  @source inline("label");
@@ -109,42 +122,55 @@
109
122
  @source inline("lg:grid-cols-3");
110
123
  @source inline("lg:hidden");
111
124
  @source inline("links");
125
+ @source inline("looking");
112
126
  @source inline("lucide-react");
113
127
  @source inline("main");
128
+ @source inline("make");
114
129
  @source inline("max-lg:hidden");
115
130
  @source inline("max-sm:hidden");
116
131
  @source inline("max-w-(--available-width)");
117
132
  @source inline("max-w-(--fd-layout-width)");
118
133
  @source inline("max-w-(--fd-layout-width,1400px)");
119
134
  @source inline("max-w-[240px]");
135
+ @source inline("max-w-md");
120
136
  @source inline("mb-1");
121
137
  @source inline("mb-4");
122
138
  @source inline("md:grid-cols-2");
123
139
  @source inline("menu");
140
+ @source inline("might");
124
141
  @source inline("mode");
125
142
  @source inline("ms-auto");
143
+ @source inline("mt-4");
126
144
  @source inline("mx-auto");
145
+ @source inline("name");
127
146
  @source inline("nav");
128
147
  @source inline("navItemVariants");
129
148
  @source inline("navItems");
130
149
  @source inline("nd-home-layout");
131
150
  @source inline("nd-nav");
132
151
  @source inline("none");
152
+ @source inline("not");
133
153
  @source inline("onClick");
134
154
  @source inline("onOpenChange");
135
155
  @source inline("open");
156
+ @source inline("or");
136
157
  @source inline("origin-(--transform-origin)");
137
158
  @source inline("overflow-hidden");
159
+ @source inline("own");
138
160
  @source inline("p-1");
139
161
  @source inline("p-2");
140
162
  @source inline("p-3");
141
163
  @source inline("p-4");
164
+ @source inline("page");
142
165
  @source inline("pb-4");
166
+ @source inline("please");
167
+ @source inline("primary");
143
168
  @source inline("props");
144
169
  @source inline("ps-2.5");
145
170
  @source inline("pt-2");
146
171
  @source inline("px-4");
147
172
  @source inline("px-6");
173
+ @source inline("px-8");
148
174
  @source inline("py-1.5");
149
175
  @source inline("react");
150
176
  @source inline("relative");
@@ -165,6 +191,7 @@
165
191
  @source inline("sideOffset");
166
192
  @source inline("size");
167
193
  @source inline("size-3");
194
+ @source inline("size-4");
168
195
  @source inline("size-5");
169
196
  @source inline("size-full");
170
197
  @source inline("sm");
@@ -173,11 +200,17 @@
173
200
  @source inline("string");
174
201
  @source inline("style");
175
202
  @source inline("target");
203
+ @source inline("temporarily");
176
204
  @source inline("text");
205
+ @source inline("text-2xl");
206
+ @source inline("text-6xl");
177
207
  @source inline("text-base");
208
+ @source inline("text-center");
178
209
  @source inline("text-fd-muted-foreground");
179
210
  @source inline("text-sm");
211
+ @source inline("the");
180
212
  @source inline("themeSwitch");
213
+ @source inline("to");
181
214
  @source inline("top");
182
215
  @source inline("top-0");
183
216
  @source inline("transition-[left,right]");
@@ -198,5 +231,8 @@
198
231
  @source inline("w-(--positioner-width)");
199
232
  @source inline("w-fit");
200
233
  @source inline("w-full");
234
+ @source inline("want");
235
+ @source inline("you");
236
+ @source inline("your");
201
237
  @source inline("z-20");
202
238
  @source inline("z-40");
@@ -2,17 +2,12 @@
2
2
  var __defProp = Object.defineProperty;
3
3
  var __exportAll = (all, no_symbols) => {
4
4
  let target = {};
5
- for (var name in all) {
6
- __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- }
11
- if (!no_symbols) {
12
- __defProp(target, Symbol.toStringTag, { value: "Module" });
13
- }
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
14
10
  return target;
15
11
  };
16
-
17
12
  //#endregion
18
- export { __exportAll };
13
+ export { __exportAll };
@@ -1,5 +1,4 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { cn } from "../utils/cn.js";
4
3
  import { useCopyButton } from "../utils/use-copy-button.js";
5
4
  import { buttonVariants } from "./ui/button.js";
@@ -8,7 +7,6 @@ import { Accordion as Accordion$1, AccordionContent, AccordionHeader, AccordionI
8
7
  import { useEffect, useRef, useState } from "react";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
10
9
  import { Check, Link } from "lucide-react";
11
-
12
10
  //#region src/components/accordion.tsx
13
11
  function Accordions({ ref, className, defaultValue, ...props }) {
14
12
  const rootRef = useRef(null);
@@ -65,7 +63,7 @@ function CopyButton({ id }) {
65
63
  children: checked ? /* @__PURE__ */ jsx(Check, { className: "size-3.5" }) : /* @__PURE__ */ jsx(Link, { className: "size-3.5" })
66
64
  });
67
65
  }
68
-
69
66
  //#endregion
70
67
  export { Accordion, Accordions };
68
+
71
69
  //# sourceMappingURL=accordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","names":["Root","LinkIcon"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["'use client';\n\nimport { Check, Link as LinkIcon } from 'lucide-react';\nimport { ComponentProps, type ReactNode, useEffect, useRef, useState } from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { mergeRefs } from '@/utils/merge-refs';\nimport {\n Accordion as Root,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n} from '@/components/ui/accordion';\n\nexport function Accordions({\n ref,\n className,\n defaultValue,\n ...props\n}: ComponentProps<typeof Root>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = mergeRefs(ref, rootRef);\n const [value, setValue] = useState<string[]>(defaultValue ?? []);\n\n useEffect(() => {\n const id = window.location.hash.substring(1);\n const element = rootRef.current;\n if (!element || id.length === 0) return;\n\n const selected = document.getElementById(id);\n if (!selected || !element.contains(selected)) return;\n const value = selected.getAttribute('data-accordion-value');\n\n if (value) setValue((prev) => [value, ...prev]);\n }, []);\n\n return (\n <Root\n ref={composedRef}\n value={value}\n onValueChange={setValue}\n className={(s) =>\n cn(\n 'divide-y divide-fd-border overflow-hidden rounded-lg border bg-fd-card',\n typeof className === 'function' ? className(s) : className,\n )\n }\n {...props}\n />\n );\n}\n\nexport function Accordion({\n title,\n id,\n value = String(title),\n children,\n ...props\n}: Omit<ComponentProps<typeof AccordionItem>, 'value' | 'title'> & {\n title: string | ReactNode;\n value?: string;\n}) {\n return (\n <AccordionItem value={value} {...props}>\n <AccordionHeader id={id} data-accordion-value={value}>\n <AccordionTrigger>{title}</AccordionTrigger>\n {id ? <CopyButton id={id} /> : null}\n </AccordionHeader>\n <AccordionContent hiddenUntilFound>\n <div className=\"px-4 pb-2 text-[0.9375rem] prose-no-margin [&[hidden]:not([hidden='until-found'])]:hidden\">\n {children}\n </div>\n </AccordionContent>\n </AccordionItem>\n );\n}\n\nfunction CopyButton({ id }: { id: string }) {\n const [checked, onClick] = useCopyButton(() => {\n const url = new URL(window.location.href);\n url.hash = id;\n\n return navigator.clipboard.writeText(url.toString());\n });\n\n return (\n <button\n type=\"button\"\n aria-label=\"Copy Link\"\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'text-fd-muted-foreground me-2',\n }),\n )}\n onClick={onClick}\n >\n {checked ? <Check className=\"size-3.5\" /> : <LinkIcon className=\"size-3.5\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,SAAgB,WAAW,EACzB,KACA,WACA,cACA,GAAG,SAC2B;CAC9B,MAAM,UAAU,OAAuB,KAAK;CAC5C,MAAM,cAAc,UAAU,KAAK,QAAQ;CAC3C,MAAM,CAAC,OAAO,YAAY,SAAmB,gBAAgB,EAAE,CAAC;AAEhE,iBAAgB;EACd,MAAM,KAAK,OAAO,SAAS,KAAK,UAAU,EAAE;EAC5C,MAAM,UAAU,QAAQ;AACxB,MAAI,CAAC,WAAW,GAAG,WAAW,EAAG;EAEjC,MAAM,WAAW,SAAS,eAAe,GAAG;AAC5C,MAAI,CAAC,YAAY,CAAC,QAAQ,SAAS,SAAS,CAAE;EAC9C,MAAM,QAAQ,SAAS,aAAa,uBAAuB;AAE3D,MAAI,MAAO,WAAU,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9C,EAAE,CAAC;AAEN,QACE,oBAACA;EACC,KAAK;EACE;EACP,eAAe;EACf,YAAY,MACV,GACE,0EACA,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;EAEH,GAAI;GACJ;;AAIN,SAAgB,UAAU,EACxB,OACA,IACA,QAAQ,OAAO,MAAM,EACrB,UACA,GAAG,SAIF;AACD,QACE,qBAAC;EAAqB;EAAO,GAAI;aAC/B,qBAAC;GAAoB;GAAI,wBAAsB;cAC7C,oBAAC,8BAAkB,QAAyB,EAC3C,KAAK,oBAAC,cAAe,KAAM,GAAG;IACf,EAClB,oBAAC;GAAiB;aAChB,oBAAC;IAAI,WAAU;IACZ;KACG;IACW;GACL;;AAIpB,SAAS,WAAW,EAAE,MAAsB;CAC1C,MAAM,CAAC,SAAS,WAAW,oBAAoB;EAC7C,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,MAAI,OAAO;AAEX,SAAO,UAAU,UAAU,UAAU,IAAI,UAAU,CAAC;GACpD;AAEF,QACE,oBAAC;EACC,MAAK;EACL,cAAW;EACX,WAAW,GACT,eAAe;GACb,OAAO;GACP,WAAW;GACZ,CAAC,CACH;EACQ;YAER,UAAU,oBAAC,SAAM,WAAU,aAAa,GAAG,oBAACC,QAAS,WAAU,aAAa;GACtE"}
1
+ {"version":3,"file":"accordion.js","names":["Root","LinkIcon"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["'use client';\n\nimport { Check, Link as LinkIcon } from 'lucide-react';\nimport { ComponentProps, type ReactNode, useEffect, useRef, useState } from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { mergeRefs } from '@/utils/merge-refs';\nimport {\n Accordion as Root,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n} from '@/components/ui/accordion';\n\nexport function Accordions({\n ref,\n className,\n defaultValue,\n ...props\n}: ComponentProps<typeof Root>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = mergeRefs(ref, rootRef);\n const [value, setValue] = useState<string[]>(defaultValue ?? []);\n\n useEffect(() => {\n const id = window.location.hash.substring(1);\n const element = rootRef.current;\n if (!element || id.length === 0) return;\n\n const selected = document.getElementById(id);\n if (!selected || !element.contains(selected)) return;\n const value = selected.getAttribute('data-accordion-value');\n\n if (value) setValue((prev) => [value, ...prev]);\n }, []);\n\n return (\n <Root\n ref={composedRef}\n value={value}\n onValueChange={setValue}\n className={(s) =>\n cn(\n 'divide-y divide-fd-border overflow-hidden rounded-lg border bg-fd-card',\n typeof className === 'function' ? className(s) : className,\n )\n }\n {...props}\n />\n );\n}\n\nexport function Accordion({\n title,\n id,\n value = String(title),\n children,\n ...props\n}: Omit<ComponentProps<typeof AccordionItem>, 'value' | 'title'> & {\n title: string | ReactNode;\n value?: string;\n}) {\n return (\n <AccordionItem value={value} {...props}>\n <AccordionHeader id={id} data-accordion-value={value}>\n <AccordionTrigger>{title}</AccordionTrigger>\n {id ? <CopyButton id={id} /> : null}\n </AccordionHeader>\n <AccordionContent hiddenUntilFound>\n <div className=\"px-4 pb-2 text-[0.9375rem] prose-no-margin [&[hidden]:not([hidden='until-found'])]:hidden\">\n {children}\n </div>\n </AccordionContent>\n </AccordionItem>\n );\n}\n\nfunction CopyButton({ id }: { id: string }) {\n const [checked, onClick] = useCopyButton(() => {\n const url = new URL(window.location.href);\n url.hash = id;\n\n return navigator.clipboard.writeText(url.toString());\n });\n\n return (\n <button\n type=\"button\"\n aria-label=\"Copy Link\"\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'text-fd-muted-foreground me-2',\n }),\n )}\n onClick={onClick}\n >\n {checked ? <Check className=\"size-3.5\" /> : <LinkIcon className=\"size-3.5\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,WAAW,EACzB,KACA,WACA,cACA,GAAG,SAC2B;CAC9B,MAAM,UAAU,OAAuB,KAAK;CAC5C,MAAM,cAAc,UAAU,KAAK,QAAQ;CAC3C,MAAM,CAAC,OAAO,YAAY,SAAmB,gBAAgB,EAAE,CAAC;AAEhE,iBAAgB;EACd,MAAM,KAAK,OAAO,SAAS,KAAK,UAAU,EAAE;EAC5C,MAAM,UAAU,QAAQ;AACxB,MAAI,CAAC,WAAW,GAAG,WAAW,EAAG;EAEjC,MAAM,WAAW,SAAS,eAAe,GAAG;AAC5C,MAAI,CAAC,YAAY,CAAC,QAAQ,SAAS,SAAS,CAAE;EAC9C,MAAM,QAAQ,SAAS,aAAa,uBAAuB;AAE3D,MAAI,MAAO,WAAU,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9C,EAAE,CAAC;AAEN,QACE,oBAACA,aAAD;EACE,KAAK;EACE;EACP,eAAe;EACf,YAAY,MACV,GACE,0EACA,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;EAEH,GAAI;EACJ,CAAA;;AAIN,SAAgB,UAAU,EACxB,OACA,IACA,QAAQ,OAAO,MAAM,EACrB,UACA,GAAG,SAIF;AACD,QACE,qBAAC,eAAD;EAAsB;EAAO,GAAI;YAAjC,CACE,qBAAC,iBAAD;GAAqB;GAAI,wBAAsB;aAA/C,CACE,oBAAC,kBAAD,EAAA,UAAmB,OAAyB,CAAA,EAC3C,KAAK,oBAAC,YAAD,EAAgB,IAAM,CAAA,GAAG,KACf;MAClB,oBAAC,kBAAD;GAAkB,kBAAA;aAChB,oBAAC,OAAD;IAAK,WAAU;IACZ;IACG,CAAA;GACW,CAAA,CACL;;;AAIpB,SAAS,WAAW,EAAE,MAAsB;CAC1C,MAAM,CAAC,SAAS,WAAW,oBAAoB;EAC7C,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,MAAI,OAAO;AAEX,SAAO,UAAU,UAAU,UAAU,IAAI,UAAU,CAAC;GACpD;AAEF,QACE,oBAAC,UAAD;EACE,MAAK;EACL,cAAW;EACX,WAAW,GACT,eAAe;GACb,OAAO;GACP,WAAW;GACZ,CAAC,CACH;EACQ;YAER,UAAU,oBAAC,OAAD,EAAO,WAAU,YAAa,CAAA,GAAG,oBAACC,MAAD,EAAU,WAAU,YAAa,CAAA;EACtE,CAAA"}
@@ -1,11 +1,9 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { cn } from "../utils/cn.js";
4
3
  import { buttonVariants } from "./ui/button.js";
5
4
  import { useEffect, useState } from "react";
6
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
6
  import { X } from "lucide-react";
8
-
9
7
  //#region src/components/banner.tsx
10
8
  function Banner({ id, variant = "normal", changeLayout = true, height = "3rem", rainbowColors = [
11
9
  "rgba(0,149,255,0.56)",
@@ -64,7 +62,7 @@ function flow({ colors }) {
64
62
  to { background-position: 100% 0; }
65
63
  }` })] });
66
64
  }
67
-
68
65
  //#endregion
69
66
  export { Banner };
67
+
70
68
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","names":[],"sources":["../../src/components/banner.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useEffect, useState } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '@/utils/cn';\nimport { buttonVariants } from '@/components/ui/button';\n\ntype BannerVariant = 'rainbow' | 'normal';\n\nexport function Banner({\n id,\n variant = 'normal',\n changeLayout = true,\n height = '3rem',\n rainbowColors = [\n 'rgba(0,149,255,0.56)',\n 'rgba(231,77,255,0.77)',\n 'rgba(255,0,0,0.73)',\n 'rgba(131,255,166,0.66)',\n ],\n ...props\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * @defaultValue 3rem\n */\n height?: string;\n\n /**\n * @defaultValue 'normal'\n */\n variant?: BannerVariant;\n\n /**\n * For rainbow variant only, customise the colors\n */\n rainbowColors?: string[];\n\n /**\n * Change Fumadocs layout styles\n *\n * @defaultValue true\n */\n changeLayout?: boolean;\n}) {\n const [open, setOpen] = useState(true);\n const globalKey = id ? `nd-banner-${id}` : null;\n\n useEffect(() => {\n if (globalKey) setOpen(localStorage.getItem(globalKey) !== 'true');\n }, [globalKey]);\n\n if (!open) return null;\n\n return (\n <div\n id={id}\n {...props}\n className={cn(\n 'sticky top-0 z-40 flex flex-row items-center justify-center px-4 text-center text-sm font-medium',\n variant === 'normal' && 'bg-fd-secondary',\n variant === 'rainbow' && 'bg-fd-background',\n !open && 'hidden',\n props.className,\n )}\n style={{\n height,\n }}\n >\n {changeLayout && open ? (\n <style>\n {globalKey\n ? `:root:not(.${globalKey}) { --fd-banner-height: ${height}; }`\n : `:root { --fd-banner-height: ${height}; }`}\n </style>\n ) : null}\n {globalKey ? <style>{`.${globalKey} #${id} { display: none; }`}</style> : null}\n {globalKey ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `if (localStorage.getItem('${globalKey}') === 'true') document.documentElement.classList.add('${globalKey}');`,\n }}\n />\n ) : null}\n\n {variant === 'rainbow'\n ? flow({\n colors: rainbowColors,\n })\n : null}\n {props.children}\n {id ? (\n <button\n type=\"button\"\n aria-label=\"Close Banner\"\n onClick={() => {\n setOpen(false);\n if (globalKey) localStorage.setItem(globalKey, 'true');\n }}\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'absolute end-2 top-1/2 -translate-y-1/2 text-fd-muted-foreground/50',\n size: 'icon-sm',\n }),\n )}\n >\n <X />\n </button>\n ) : null}\n </div>\n );\n}\n\nconst maskImage =\n 'linear-gradient(to bottom,white,transparent), radial-gradient(circle at top center, white, transparent)';\n\nfunction flow({ colors }: { colors: string[] }) {\n return (\n <>\n <div\n className=\"absolute inset-0 z-[-1]\"\n style={\n {\n maskImage,\n maskComposite: 'intersect',\n animation: 'fd-moving-banner 20s linear infinite',\n backgroundImage: `repeating-linear-gradient(70deg, ${[...colors, colors[0]].map((color, i) => `${color} ${(i * 50) / colors.length}%`).join(', ')})`,\n backgroundSize: '200% 100%',\n filter: 'saturate(2)',\n } as object\n }\n />\n <style>\n {`@keyframes fd-moving-banner {\n from { background-position: 0% 0; }\n to { background-position: 100% 0; }\n }`}\n </style>\n </>\n );\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,OAAO,EACrB,IACA,UAAU,UACV,eAAe,MACf,SAAS,QACT,gBAAgB;CACd;CACA;CACA;CACA;CACD,EACD,GAAG,SAuBF;CACD,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;CACtC,MAAM,YAAY,KAAK,aAAa,OAAO;AAE3C,iBAAgB;AACd,MAAI,UAAW,SAAQ,aAAa,QAAQ,UAAU,KAAK,OAAO;IACjE,CAAC,UAAU,CAAC;AAEf,KAAI,CAAC,KAAM,QAAO;AAElB,QACE,qBAAC;EACK;EACJ,GAAI;EACJ,WAAW,GACT,oGACA,YAAY,YAAY,mBACxB,YAAY,aAAa,oBACzB,CAAC,QAAQ,UACT,MAAM,UACP;EACD,OAAO,EACL,QACD;;GAEA,gBAAgB,OACf,oBAAC,qBACE,YACG,cAAc,UAAU,0BAA0B,OAAO,OACzD,+BAA+B,OAAO,OACpC,GACN;GACH,YAAY,oBAAC,qBAAO,IAAI,UAAU,IAAI,GAAG,uBAA6B,GAAG;GACzE,YACC,oBAAC,YACC,yBAAyB,EACvB,QAAQ,6BAA6B,UAAU,yDAAyD,UAAU,MACnH,GACD,GACA;GAEH,YAAY,YACT,KAAK,EACH,QAAQ,eACT,CAAC,GACF;GACH,MAAM;GACN,KACC,oBAAC;IACC,MAAK;IACL,cAAW;IACX,eAAe;AACb,aAAQ,MAAM;AACd,SAAI,UAAW,cAAa,QAAQ,WAAW,OAAO;;IAExD,WAAW,GACT,eAAe;KACb,OAAO;KACP,WAAW;KACX,MAAM;KACP,CAAC,CACH;cAED,oBAAC,MAAI;KACE,GACP;;GACA;;AAIV,MAAM,YACJ;AAEF,SAAS,KAAK,EAAE,UAAgC;AAC9C,QACE,8CACE,oBAAC;EACC,WAAU;EACV,OACE;GACE;GACA,eAAe;GACf,WAAW;GACX,iBAAiB,oCAAoC,CAAC,GAAG,QAAQ,OAAO,GAAG,CAAC,KAAK,OAAO,MAAM,GAAG,MAAM,GAAI,IAAI,KAAM,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC;GAClJ,gBAAgB;GAChB,QAAQ;GACT;GAEH,EACF,oBAAC,qBACE;;;cAIK,IACP"}
1
+ {"version":3,"file":"banner.js","names":[],"sources":["../../src/components/banner.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useEffect, useState } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '@/utils/cn';\nimport { buttonVariants } from '@/components/ui/button';\n\ntype BannerVariant = 'rainbow' | 'normal';\n\nexport function Banner({\n id,\n variant = 'normal',\n changeLayout = true,\n height = '3rem',\n rainbowColors = [\n 'rgba(0,149,255,0.56)',\n 'rgba(231,77,255,0.77)',\n 'rgba(255,0,0,0.73)',\n 'rgba(131,255,166,0.66)',\n ],\n ...props\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * @defaultValue 3rem\n */\n height?: string;\n\n /**\n * @defaultValue 'normal'\n */\n variant?: BannerVariant;\n\n /**\n * For rainbow variant only, customise the colors\n */\n rainbowColors?: string[];\n\n /**\n * Change Fumadocs layout styles\n *\n * @defaultValue true\n */\n changeLayout?: boolean;\n}) {\n const [open, setOpen] = useState(true);\n const globalKey = id ? `nd-banner-${id}` : null;\n\n useEffect(() => {\n if (globalKey) setOpen(localStorage.getItem(globalKey) !== 'true');\n }, [globalKey]);\n\n if (!open) return null;\n\n return (\n <div\n id={id}\n {...props}\n className={cn(\n 'sticky top-0 z-40 flex flex-row items-center justify-center px-4 text-center text-sm font-medium',\n variant === 'normal' && 'bg-fd-secondary',\n variant === 'rainbow' && 'bg-fd-background',\n !open && 'hidden',\n props.className,\n )}\n style={{\n height,\n }}\n >\n {changeLayout && open ? (\n <style>\n {globalKey\n ? `:root:not(.${globalKey}) { --fd-banner-height: ${height}; }`\n : `:root { --fd-banner-height: ${height}; }`}\n </style>\n ) : null}\n {globalKey ? <style>{`.${globalKey} #${id} { display: none; }`}</style> : null}\n {globalKey ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `if (localStorage.getItem('${globalKey}') === 'true') document.documentElement.classList.add('${globalKey}');`,\n }}\n />\n ) : null}\n\n {variant === 'rainbow'\n ? flow({\n colors: rainbowColors,\n })\n : null}\n {props.children}\n {id ? (\n <button\n type=\"button\"\n aria-label=\"Close Banner\"\n onClick={() => {\n setOpen(false);\n if (globalKey) localStorage.setItem(globalKey, 'true');\n }}\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'absolute end-2 top-1/2 -translate-y-1/2 text-fd-muted-foreground/50',\n size: 'icon-sm',\n }),\n )}\n >\n <X />\n </button>\n ) : null}\n </div>\n );\n}\n\nconst maskImage =\n 'linear-gradient(to bottom,white,transparent), radial-gradient(circle at top center, white, transparent)';\n\nfunction flow({ colors }: { colors: string[] }) {\n return (\n <>\n <div\n className=\"absolute inset-0 z-[-1]\"\n style={\n {\n maskImage,\n maskComposite: 'intersect',\n animation: 'fd-moving-banner 20s linear infinite',\n backgroundImage: `repeating-linear-gradient(70deg, ${[...colors, colors[0]].map((color, i) => `${color} ${(i * 50) / colors.length}%`).join(', ')})`,\n backgroundSize: '200% 100%',\n filter: 'saturate(2)',\n } as object\n }\n />\n <style>\n {`@keyframes fd-moving-banner {\n from { background-position: 0% 0; }\n to { background-position: 100% 0; }\n }`}\n </style>\n </>\n );\n}\n"],"mappings":";;;;;;;AASA,SAAgB,OAAO,EACrB,IACA,UAAU,UACV,eAAe,MACf,SAAS,QACT,gBAAgB;CACd;CACA;CACA;CACA;CACD,EACD,GAAG,SAuBF;CACD,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;CACtC,MAAM,YAAY,KAAK,aAAa,OAAO;AAE3C,iBAAgB;AACd,MAAI,UAAW,SAAQ,aAAa,QAAQ,UAAU,KAAK,OAAO;IACjE,CAAC,UAAU,CAAC;AAEf,KAAI,CAAC,KAAM,QAAO;AAElB,QACE,qBAAC,OAAD;EACM;EACJ,GAAI;EACJ,WAAW,GACT,oGACA,YAAY,YAAY,mBACxB,YAAY,aAAa,oBACzB,CAAC,QAAQ,UACT,MAAM,UACP;EACD,OAAO,EACL,QACD;YAZH;GAcG,gBAAgB,OACf,oBAAC,SAAD,EAAA,UACG,YACG,cAAc,UAAU,0BAA0B,OAAO,OACzD,+BAA+B,OAAO,MACpC,CAAA,GACN;GACH,YAAY,oBAAC,SAAD,EAAA,UAAQ,IAAI,UAAU,IAAI,GAAG,sBAA6B,CAAA,GAAG;GACzE,YACC,oBAAC,UAAD,EACE,yBAAyB,EACvB,QAAQ,6BAA6B,UAAU,yDAAyD,UAAU,MACnH,EACD,CAAA,GACA;GAEH,YAAY,YACT,KAAK,EACH,QAAQ,eACT,CAAC,GACF;GACH,MAAM;GACN,KACC,oBAAC,UAAD;IACE,MAAK;IACL,cAAW;IACX,eAAe;AACb,aAAQ,MAAM;AACd,SAAI,UAAW,cAAa,QAAQ,WAAW,OAAO;;IAExD,WAAW,GACT,eAAe;KACb,OAAO;KACP,WAAW;KACX,MAAM;KACP,CAAC,CACH;cAED,oBAAC,GAAD,EAAK,CAAA;IACE,CAAA,GACP;GACA;;;AAIV,MAAM,YACJ;AAEF,SAAS,KAAK,EAAE,UAAgC;AAC9C,QACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EACE,WAAU;EACV,OACE;GACE;GACA,eAAe;GACf,WAAW;GACX,iBAAiB,oCAAoC,CAAC,GAAG,QAAQ,OAAO,GAAG,CAAC,KAAK,OAAO,MAAM,GAAG,MAAM,GAAI,IAAI,KAAM,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC;GAClJ,gBAAgB;GAChB,QAAQ;GACT;EAEH,CAAA,EACF,oBAAC,SAAD,EAAA,UACG;;;aAIK,CAAA,CACP,EAAA,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { cn } from "../utils/cn.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { CircleCheck, CircleX, Info, Lightbulb, TriangleAlert } from "lucide-react";
4
-
5
4
  //#region src/components/callout.tsx
6
5
  const iconClass = "size-5 -me-0.5 fill-(--callout-color) text-fd-card";
7
6
  function Callout({ children, title, ...props }) {
@@ -57,7 +56,7 @@ function CalloutDescription({ children, className, ...props }) {
57
56
  children
58
57
  });
59
58
  }
60
-
61
59
  //#endregion
62
60
  export { Callout, CalloutContainer, CalloutDescription, CalloutTitle };
61
+
63
62
  //# sourceMappingURL=callout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callout.js","names":[],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import { CircleCheck, CircleX, Info, Lightbulb, TriangleAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport type CalloutType = 'info' | 'warn' | 'error' | 'success' | 'warning' | 'idea';\n\nconst iconClass = 'size-5 -me-0.5 fill-(--callout-color) text-fd-card';\n\nexport function Callout({\n children,\n title,\n ...props\n}: { title?: ReactNode } & Omit<CalloutContainerProps, 'title'>) {\n return (\n <CalloutContainer {...props}>\n {title && <CalloutTitle>{title}</CalloutTitle>}\n <CalloutDescription>{children}</CalloutDescription>\n </CalloutContainer>\n );\n}\n\nexport interface CalloutContainerProps extends ComponentProps<'div'> {\n /**\n * @defaultValue info\n */\n type?: CalloutType;\n\n /**\n * Force an icon\n */\n icon?: ReactNode;\n}\n\nfunction resolveAlias(type: CalloutType) {\n if (type === 'warn') return 'warning';\n if ((type as unknown) === 'tip') return 'info';\n return type;\n}\n\nexport function CalloutContainer({\n type: inputType = 'info',\n icon,\n children,\n className,\n style,\n ...props\n}: CalloutContainerProps) {\n const type = resolveAlias(inputType);\n\n return (\n <div\n className={cn(\n 'flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md',\n className,\n )}\n style={\n {\n '--callout-color': `var(--color-fd-${type}, var(--color-fd-muted))`,\n ...style,\n } as object\n }\n {...props}\n >\n <div role=\"none\" className=\"w-0.5 bg-(--callout-color)/50 rounded-sm\" />\n {icon ??\n {\n info: <Info className={iconClass} />,\n warning: <TriangleAlert className={iconClass} />,\n error: <CircleX className={iconClass} />,\n success: <CircleCheck className={iconClass} />,\n idea: (\n <Lightbulb className=\"size-5 -me-0.5 fill-(--callout-color) text-(--callout-color)\" />\n ),\n }[type]}\n <div className=\"flex flex-col gap-2 min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nexport function CalloutTitle({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <p className={cn('font-medium my-0!', className)} {...props}>\n {children}\n </p>\n );\n}\n\nexport function CalloutDescription({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <div\n className={cn('text-fd-muted-foreground prose-no-margin empty:hidden', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;AAMA,MAAM,YAAY;AAElB,SAAgB,QAAQ,EACtB,UACA,OACA,GAAG,SAC4D;AAC/D,QACE,qBAAC;EAAiB,GAAI;aACnB,SAAS,oBAAC,0BAAc,QAAqB,EAC9C,oBAAC,sBAAoB,WAA8B;GAClC;;AAgBvB,SAAS,aAAa,MAAmB;AACvC,KAAI,SAAS,OAAQ,QAAO;AAC5B,KAAK,SAAqB,MAAO,QAAO;AACxC,QAAO;;AAGT,SAAgB,iBAAiB,EAC/B,MAAM,YAAY,QAClB,MACA,UACA,WACA,OACA,GAAG,SACqB;CACxB,MAAM,OAAO,aAAa,UAAU;AAEpC,QACE,qBAAC;EACC,WAAW,GACT,mGACA,UACD;EACD,OACE;GACE,mBAAmB,kBAAkB,KAAK;GAC1C,GAAG;GACJ;EAEH,GAAI;;GAEJ,oBAAC;IAAI,MAAK;IAAO,WAAU;KAA6C;GACvE,QACC;IACE,MAAM,oBAAC,QAAK,WAAW,YAAa;IACpC,SAAS,oBAAC,iBAAc,WAAW,YAAa;IAChD,OAAO,oBAAC,WAAQ,WAAW,YAAa;IACxC,SAAS,oBAAC,eAAY,WAAW,YAAa;IAC9C,MACE,oBAAC,aAAU,WAAU,iEAAiE;IAEzF,CAAC;GACJ,oBAAC;IAAI,WAAU;IAAsC;KAAe;;GAChE;;AAIV,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA8B;AACnF,QACE,oBAAC;EAAE,WAAW,GAAG,qBAAqB,UAAU;EAAE,GAAI;EACnD;GACC;;AAIR,SAAgB,mBAAmB,EAAE,UAAU,WAAW,GAAG,SAA8B;AACzF,QACE,oBAAC;EACC,WAAW,GAAG,yDAAyD,UAAU;EACjF,GAAI;EAEH;GACG"}
1
+ {"version":3,"file":"callout.js","names":[],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import { CircleCheck, CircleX, Info, Lightbulb, TriangleAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport type CalloutType = 'info' | 'warn' | 'error' | 'success' | 'warning' | 'idea';\n\nconst iconClass = 'size-5 -me-0.5 fill-(--callout-color) text-fd-card';\n\nexport function Callout({\n children,\n title,\n ...props\n}: { title?: ReactNode } & Omit<CalloutContainerProps, 'title'>) {\n return (\n <CalloutContainer {...props}>\n {title && <CalloutTitle>{title}</CalloutTitle>}\n <CalloutDescription>{children}</CalloutDescription>\n </CalloutContainer>\n );\n}\n\nexport interface CalloutContainerProps extends ComponentProps<'div'> {\n /**\n * @defaultValue info\n */\n type?: CalloutType;\n\n /**\n * Force an icon\n */\n icon?: ReactNode;\n}\n\nfunction resolveAlias(type: CalloutType) {\n if (type === 'warn') return 'warning';\n if ((type as unknown) === 'tip') return 'info';\n return type;\n}\n\nexport function CalloutContainer({\n type: inputType = 'info',\n icon,\n children,\n className,\n style,\n ...props\n}: CalloutContainerProps) {\n const type = resolveAlias(inputType);\n\n return (\n <div\n className={cn(\n 'flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md',\n className,\n )}\n style={\n {\n '--callout-color': `var(--color-fd-${type}, var(--color-fd-muted))`,\n ...style,\n } as object\n }\n {...props}\n >\n <div role=\"none\" className=\"w-0.5 bg-(--callout-color)/50 rounded-sm\" />\n {icon ??\n {\n info: <Info className={iconClass} />,\n warning: <TriangleAlert className={iconClass} />,\n error: <CircleX className={iconClass} />,\n success: <CircleCheck className={iconClass} />,\n idea: (\n <Lightbulb className=\"size-5 -me-0.5 fill-(--callout-color) text-(--callout-color)\" />\n ),\n }[type]}\n <div className=\"flex flex-col gap-2 min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nexport function CalloutTitle({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <p className={cn('font-medium my-0!', className)} {...props}>\n {children}\n </p>\n );\n}\n\nexport function CalloutDescription({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <div\n className={cn('text-fd-muted-foreground prose-no-margin empty:hidden', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;AAMA,MAAM,YAAY;AAElB,SAAgB,QAAQ,EACtB,UACA,OACA,GAAG,SAC4D;AAC/D,QACE,qBAAC,kBAAD;EAAkB,GAAI;YAAtB,CACG,SAAS,oBAAC,cAAD,EAAA,UAAe,OAAqB,CAAA,EAC9C,oBAAC,oBAAD,EAAqB,UAA8B,CAAA,CAClC;;;AAgBvB,SAAS,aAAa,MAAmB;AACvC,KAAI,SAAS,OAAQ,QAAO;AAC5B,KAAK,SAAqB,MAAO,QAAO;AACxC,QAAO;;AAGT,SAAgB,iBAAiB,EAC/B,MAAM,YAAY,QAClB,MACA,UACA,WACA,OACA,GAAG,SACqB;CACxB,MAAM,OAAO,aAAa,UAAU;AAEpC,QACE,qBAAC,OAAD;EACE,WAAW,GACT,mGACA,UACD;EACD,OACE;GACE,mBAAmB,kBAAkB,KAAK;GAC1C,GAAG;GACJ;EAEH,GAAI;YAXN;GAaE,oBAAC,OAAD;IAAK,MAAK;IAAO,WAAU;IAA6C,CAAA;GACvE,QACC;IACE,MAAM,oBAAC,MAAD,EAAM,WAAW,WAAa,CAAA;IACpC,SAAS,oBAAC,eAAD,EAAe,WAAW,WAAa,CAAA;IAChD,OAAO,oBAAC,SAAD,EAAS,WAAW,WAAa,CAAA;IACxC,SAAS,oBAAC,aAAD,EAAa,WAAW,WAAa,CAAA;IAC9C,MACE,oBAAC,WAAD,EAAW,WAAU,gEAAiE,CAAA;IAEzF,CAAC;GACJ,oBAAC,OAAD;IAAK,WAAU;IAAsC;IAAe,CAAA;GAChE;;;AAIV,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA8B;AACnF,QACE,oBAAC,KAAD;EAAG,WAAW,GAAG,qBAAqB,UAAU;EAAE,GAAI;EACnD;EACC,CAAA;;AAIR,SAAgB,mBAAmB,EAAE,UAAU,WAAW,GAAG,SAA8B;AACzF,QACE,oBAAC,OAAD;EACE,WAAW,GAAG,yDAAyD,UAAU;EACjF,GAAI;EAEH;EACG,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { cn } from "../utils/cn.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import Link from "fumadocs-core/link";
4
-
5
4
  //#region src/components/card.tsx
6
5
  function Cards(props) {
7
6
  return /* @__PURE__ */ jsx("div", {
@@ -35,7 +34,7 @@ function Card({ icon, title, description, ...props }) {
35
34
  ]
36
35
  });
37
36
  }
38
-
39
37
  //#endregion
40
38
  export { Card, Cards };
39
+
41
40
  //# sourceMappingURL=card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","names":[],"sources":["../../src/components/card.tsx"],"sourcesContent":["import Link from 'fumadocs-core/link';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport function Cards(props: HTMLAttributes<HTMLDivElement>) {\n return (\n <div {...props} className={cn('grid grid-cols-2 gap-3 @container', props.className)}>\n {props.children}\n </div>\n );\n}\n\nexport type CardProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n\n href?: string;\n external?: boolean;\n};\n\nexport function Card({ icon, title, description, ...props }: CardProps) {\n const E = props.href ? Link : 'div';\n\n return (\n <E\n {...props}\n data-card\n className={cn(\n 'block rounded-xl border bg-fd-card p-4 text-fd-card-foreground transition-colors @max-lg:col-span-full',\n props.href && 'hover:bg-fd-accent/80',\n props.className,\n )}\n >\n {icon ? (\n <div className=\"not-prose mb-2 w-fit shadow-md rounded-lg border bg-fd-muted p-1.5 text-fd-muted-foreground [&_svg]:size-4\">\n {icon}\n </div>\n ) : null}\n <h3 className=\"not-prose mb-1 text-sm font-medium\">{title}</h3>\n {description ? <p className=\"my-0! text-sm text-fd-muted-foreground\">{description}</p> : null}\n <div className=\"text-sm text-fd-muted-foreground prose-no-margin empty:hidden\">\n {props.children}\n </div>\n </E>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,MAAM,OAAuC;AAC3D,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,qCAAqC,MAAM,UAAU;YAChF,MAAM;GACH;;AAaV,SAAgB,KAAK,EAAE,MAAM,OAAO,aAAa,GAAG,SAAoB;AAGtE,QACE,qBAHQ,MAAM,OAAO,OAAO;EAI1B,GAAI;EACJ;EACA,WAAW,GACT,0GACA,MAAM,QAAQ,yBACd,MAAM,UACP;;GAEA,OACC,oBAAC;IAAI,WAAU;cACZ;KACG,GACJ;GACJ,oBAAC;IAAG,WAAU;cAAsC;KAAW;GAC9D,cAAc,oBAAC;IAAE,WAAU;cAA0C;KAAgB,GAAG;GACzF,oBAAC;IAAI,WAAU;cACZ,MAAM;KACH;;GACJ"}
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../src/components/card.tsx"],"sourcesContent":["import Link from 'fumadocs-core/link';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport function Cards(props: HTMLAttributes<HTMLDivElement>) {\n return (\n <div {...props} className={cn('grid grid-cols-2 gap-3 @container', props.className)}>\n {props.children}\n </div>\n );\n}\n\nexport type CardProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n\n href?: string;\n external?: boolean;\n};\n\nexport function Card({ icon, title, description, ...props }: CardProps) {\n const E = props.href ? Link : 'div';\n\n return (\n <E\n {...props}\n data-card\n className={cn(\n 'block rounded-xl border bg-fd-card p-4 text-fd-card-foreground transition-colors @max-lg:col-span-full',\n props.href && 'hover:bg-fd-accent/80',\n props.className,\n )}\n >\n {icon ? (\n <div className=\"not-prose mb-2 w-fit shadow-md rounded-lg border bg-fd-muted p-1.5 text-fd-muted-foreground [&_svg]:size-4\">\n {icon}\n </div>\n ) : null}\n <h3 className=\"not-prose mb-1 text-sm font-medium\">{title}</h3>\n {description ? <p className=\"my-0! text-sm text-fd-muted-foreground\">{description}</p> : null}\n <div className=\"text-sm text-fd-muted-foreground prose-no-margin empty:hidden\">\n {props.children}\n </div>\n </E>\n );\n}\n"],"mappings":";;;;AAIA,SAAgB,MAAM,OAAuC;AAC3D,QACE,oBAAC,OAAD;EAAK,GAAI;EAAO,WAAW,GAAG,qCAAqC,MAAM,UAAU;YAChF,MAAM;EACH,CAAA;;AAaV,SAAgB,KAAK,EAAE,MAAM,OAAO,aAAa,GAAG,SAAoB;AAGtE,QACE,qBAHQ,MAAM,OAAO,OAAO,OAG5B;EACE,GAAI;EACJ,aAAA;EACA,WAAW,GACT,0GACA,MAAM,QAAQ,yBACd,MAAM,UACP;YAPH;GASG,OACC,oBAAC,OAAD;IAAK,WAAU;cACZ;IACG,CAAA,GACJ;GACJ,oBAAC,MAAD;IAAI,WAAU;cAAsC;IAAW,CAAA;GAC9D,cAAc,oBAAC,KAAD;IAAG,WAAU;cAA0C;IAAgB,CAAA,GAAG;GACzF,oBAAC,OAAD;IAAK,WAAU;cACZ,MAAM;IACH,CAAA;GACJ"}
@@ -1,5 +1,4 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { cn } from "../utils/cn.js";
4
3
  import { useCopyButton } from "../utils/use-copy-button.js";
5
4
  import { buttonVariants } from "./ui/button.js";
@@ -8,7 +7,6 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs.js";
8
7
  import { createContext, use, useMemo, useRef } from "react";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
10
9
  import { Check, Clipboard } from "lucide-react";
11
-
12
10
  //#region src/components/codeblock.tsx
13
11
  const TabsContext = createContext(null);
14
12
  function Pre(props) {
@@ -120,7 +118,7 @@ function CodeBlockTabsTrigger({ children, className, ...props }) {
120
118
  function CodeBlockTab(props) {
121
119
  return /* @__PURE__ */ jsx(TabsContent, { ...props });
122
120
  }
123
-
124
121
  //#endregion
125
122
  export { CodeBlock, CodeBlockTab, CodeBlockTabs, CodeBlockTabsList, CodeBlockTabsTrigger, Pre };
123
+
126
124
  //# sourceMappingURL=codeblock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock.js","names":[],"sources":["../../src/components/codeblock.tsx"],"sourcesContent":["'use client';\nimport { Check, Clipboard } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type HTMLAttributes,\n type ReactNode,\n type RefObject,\n use,\n useMemo,\n useRef,\n} from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport { mergeRefs } from '@/utils/merge-refs';\n\nexport interface CodeBlockProps extends ComponentProps<'figure'> {\n /**\n * Icon of code block\n *\n * When passed as a string, it assumes the value is the HTML of icon\n */\n icon?: ReactNode;\n\n /**\n * Allow to copy code with copy button\n *\n * @defaultValue true\n */\n allowCopy?: boolean;\n\n /**\n * Keep original background color generated by Shiki or Rehype Code\n *\n * @defaultValue false\n */\n keepBackground?: boolean;\n\n viewportProps?: HTMLAttributes<HTMLElement>;\n\n /**\n * show line numbers\n */\n 'data-line-numbers'?: boolean;\n\n /**\n * @defaultValue 1\n */\n 'data-line-numbers-start'?: number;\n\n Actions?: (props: { className?: string; children?: ReactNode }) => ReactNode;\n}\n\nconst TabsContext = createContext<{\n containerRef: RefObject<HTMLDivElement | null>;\n nested: boolean;\n} | null>(null);\n\nexport function Pre(props: ComponentProps<'pre'>) {\n return (\n <pre {...props} className={cn('min-w-full w-max *:flex *:flex-col', props.className)}>\n {props.children}\n </pre>\n );\n}\n\nexport function CodeBlock({\n ref,\n title,\n allowCopy = true,\n keepBackground = false,\n icon,\n viewportProps = {},\n children,\n Actions = (props) => <div {...props} className={cn('empty:hidden', props.className)} />,\n ...props\n}: CodeBlockProps) {\n const inTab = use(TabsContext) !== null;\n const areaRef = useRef<HTMLDivElement>(null);\n\n return (\n <figure\n ref={ref}\n dir=\"ltr\"\n {...props}\n tabIndex={-1}\n className={cn(\n inTab ? 'bg-fd-secondary -mx-px -mb-px last:rounded-b-xl' : 'my-4 bg-fd-card rounded-xl',\n keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)',\n\n 'shiki relative border shadow-sm not-prose overflow-hidden text-sm',\n props.className,\n )}\n >\n {title ? (\n <div className=\"flex text-fd-muted-foreground items-center gap-2 h-9.5 border-b px-4\">\n {typeof icon === 'string' ? (\n <div\n className=\"[&_svg]:size-3.5\"\n dangerouslySetInnerHTML={{\n __html: icon,\n }}\n />\n ) : (\n icon\n )}\n <figcaption className=\"flex-1 truncate\">{title}</figcaption>\n {Actions({\n className: '-me-2',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })}\n </div>\n ) : (\n Actions({\n className:\n 'absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })\n )}\n <div\n ref={areaRef}\n {...viewportProps}\n role=\"region\"\n tabIndex={0}\n className={cn(\n 'text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring',\n viewportProps.className,\n )}\n style={\n {\n // space for toolbar\n '--padding-right': !title ? 'calc(var(--spacing) * 8)' : undefined,\n counterSet: props['data-line-numbers']\n ? `line ${Number(props['data-line-numbers-start'] ?? 1) - 1}`\n : undefined,\n ...viewportProps.style,\n } as object\n }\n >\n {children}\n </div>\n </figure>\n );\n}\n\nfunction CopyButton({\n className,\n containerRef,\n ...props\n}: ComponentProps<'button'> & {\n containerRef: RefObject<HTMLElement | null>;\n}) {\n const [checked, onClick] = useCopyButton(() => {\n const pre = containerRef.current?.getElementsByTagName('pre').item(0);\n if (!pre) return;\n\n const clone = pre.cloneNode(true) as HTMLElement;\n clone.querySelectorAll('.nd-copy-ignore').forEach((node) => {\n node.replaceWith('\\n');\n });\n\n void navigator.clipboard.writeText(clone.textContent ?? '');\n });\n\n return (\n <button\n type=\"button\"\n data-checked={checked || undefined}\n className={cn(\n buttonVariants({\n className: 'hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground',\n size: 'icon-xs',\n }),\n className,\n )}\n aria-label={checked ? 'Copied Text' : 'Copy Text'}\n onClick={onClick}\n {...props}\n >\n {checked ? <Check /> : <Clipboard />}\n </button>\n );\n}\n\nexport function CodeBlockTabs({ ref, className, ...props }: ComponentProps<typeof Tabs>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const nested = use(TabsContext) !== null;\n\n return (\n <Tabs\n ref={mergeRefs(containerRef, ref)}\n {...props}\n className={(s) =>\n cn(\n 'bg-fd-card rounded-xl border',\n !nested && 'my-4',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <TabsContext\n value={useMemo(\n () => ({\n containerRef,\n nested,\n }),\n [nested],\n )}\n >\n {props.children}\n </TabsContext>\n </Tabs>\n );\n}\n\nexport function CodeBlockTabsList({ className, ...props }: ComponentProps<typeof TabsList>) {\n return (\n <TabsList\n {...props}\n className={(s) =>\n cn(\n 'flex flex-row px-2 overflow-x-auto text-fd-muted-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n {props.children}\n </TabsList>\n );\n}\n\nexport function CodeBlockTabsTrigger({\n children,\n className,\n ...props\n}: ComponentProps<typeof TabsTrigger>) {\n return (\n <TabsTrigger\n {...props}\n className={(s) =>\n cn(\n 'relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2 py-1.5 [&_svg]:size-3.5',\n s.active ? 'text-fd-primary' : 'hover:text-fd-accent-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <div className=\"absolute inset-x-2 bottom-0 h-px group-data-active:bg-fd-primary\" />\n {children}\n </TabsTrigger>\n );\n}\n\nexport function CodeBlockTab(props: ComponentProps<typeof TabsContent>) {\n return <TabsContent {...props} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"codeblock.js","names":[],"sources":["../../src/components/codeblock.tsx"],"sourcesContent":["'use client';\nimport { Check, Clipboard } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type HTMLAttributes,\n type ReactNode,\n type RefObject,\n use,\n useMemo,\n useRef,\n} from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport { mergeRefs } from '@/utils/merge-refs';\n\nexport interface CodeBlockProps extends ComponentProps<'figure'> {\n /**\n * Icon of code block\n *\n * When passed as a string, it assumes the value is the HTML of icon\n */\n icon?: ReactNode;\n\n /**\n * Allow to copy code with copy button\n *\n * @defaultValue true\n */\n allowCopy?: boolean;\n\n /**\n * Keep original background color generated by Shiki or Rehype Code\n *\n * @defaultValue false\n */\n keepBackground?: boolean;\n\n viewportProps?: HTMLAttributes<HTMLElement>;\n\n /**\n * show line numbers\n */\n 'data-line-numbers'?: boolean;\n\n /**\n * @defaultValue 1\n */\n 'data-line-numbers-start'?: number;\n\n Actions?: (props: { className?: string; children?: ReactNode }) => ReactNode;\n}\n\nconst TabsContext = createContext<{\n containerRef: RefObject<HTMLDivElement | null>;\n nested: boolean;\n} | null>(null);\n\nexport function Pre(props: ComponentProps<'pre'>) {\n return (\n <pre {...props} className={cn('min-w-full w-max *:flex *:flex-col', props.className)}>\n {props.children}\n </pre>\n );\n}\n\nexport function CodeBlock({\n ref,\n title,\n allowCopy = true,\n keepBackground = false,\n icon,\n viewportProps = {},\n children,\n Actions = (props) => <div {...props} className={cn('empty:hidden', props.className)} />,\n ...props\n}: CodeBlockProps) {\n const inTab = use(TabsContext) !== null;\n const areaRef = useRef<HTMLDivElement>(null);\n\n return (\n <figure\n ref={ref}\n dir=\"ltr\"\n {...props}\n tabIndex={-1}\n className={cn(\n inTab ? 'bg-fd-secondary -mx-px -mb-px last:rounded-b-xl' : 'my-4 bg-fd-card rounded-xl',\n keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)',\n\n 'shiki relative border shadow-sm not-prose overflow-hidden text-sm',\n props.className,\n )}\n >\n {title ? (\n <div className=\"flex text-fd-muted-foreground items-center gap-2 h-9.5 border-b px-4\">\n {typeof icon === 'string' ? (\n <div\n className=\"[&_svg]:size-3.5\"\n dangerouslySetInnerHTML={{\n __html: icon,\n }}\n />\n ) : (\n icon\n )}\n <figcaption className=\"flex-1 truncate\">{title}</figcaption>\n {Actions({\n className: '-me-2',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })}\n </div>\n ) : (\n Actions({\n className:\n 'absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })\n )}\n <div\n ref={areaRef}\n {...viewportProps}\n role=\"region\"\n tabIndex={0}\n className={cn(\n 'text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring',\n viewportProps.className,\n )}\n style={\n {\n // space for toolbar\n '--padding-right': !title ? 'calc(var(--spacing) * 8)' : undefined,\n counterSet: props['data-line-numbers']\n ? `line ${Number(props['data-line-numbers-start'] ?? 1) - 1}`\n : undefined,\n ...viewportProps.style,\n } as object\n }\n >\n {children}\n </div>\n </figure>\n );\n}\n\nfunction CopyButton({\n className,\n containerRef,\n ...props\n}: ComponentProps<'button'> & {\n containerRef: RefObject<HTMLElement | null>;\n}) {\n const [checked, onClick] = useCopyButton(() => {\n const pre = containerRef.current?.getElementsByTagName('pre').item(0);\n if (!pre) return;\n\n const clone = pre.cloneNode(true) as HTMLElement;\n clone.querySelectorAll('.nd-copy-ignore').forEach((node) => {\n node.replaceWith('\\n');\n });\n\n void navigator.clipboard.writeText(clone.textContent ?? '');\n });\n\n return (\n <button\n type=\"button\"\n data-checked={checked || undefined}\n className={cn(\n buttonVariants({\n className: 'hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground',\n size: 'icon-xs',\n }),\n className,\n )}\n aria-label={checked ? 'Copied Text' : 'Copy Text'}\n onClick={onClick}\n {...props}\n >\n {checked ? <Check /> : <Clipboard />}\n </button>\n );\n}\n\nexport function CodeBlockTabs({ ref, className, ...props }: ComponentProps<typeof Tabs>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const nested = use(TabsContext) !== null;\n\n return (\n <Tabs\n ref={mergeRefs(containerRef, ref)}\n {...props}\n className={(s) =>\n cn(\n 'bg-fd-card rounded-xl border',\n !nested && 'my-4',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <TabsContext\n value={useMemo(\n () => ({\n containerRef,\n nested,\n }),\n [nested],\n )}\n >\n {props.children}\n </TabsContext>\n </Tabs>\n );\n}\n\nexport function CodeBlockTabsList({ className, ...props }: ComponentProps<typeof TabsList>) {\n return (\n <TabsList\n {...props}\n className={(s) =>\n cn(\n 'flex flex-row px-2 overflow-x-auto text-fd-muted-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n {props.children}\n </TabsList>\n );\n}\n\nexport function CodeBlockTabsTrigger({\n children,\n className,\n ...props\n}: ComponentProps<typeof TabsTrigger>) {\n return (\n <TabsTrigger\n {...props}\n className={(s) =>\n cn(\n 'relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2 py-1.5 [&_svg]:size-3.5',\n s.active ? 'text-fd-primary' : 'hover:text-fd-accent-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <div className=\"absolute inset-x-2 bottom-0 h-px group-data-active:bg-fd-primary\" />\n {children}\n </TabsTrigger>\n );\n}\n\nexport function CodeBlockTab(props: ComponentProps<typeof TabsContent>) {\n return <TabsContent {...props} />;\n}\n"],"mappings":"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"}
@@ -1,24 +1,23 @@
1
1
  import { cn } from "../utils/cn.js";
2
- import { CodeBlock, Pre } from "./codeblock.js";
3
- import { jsx } from "react/jsx-runtime";
2
+ import "./codeblock.js";
3
+ import "react/jsx-runtime";
4
4
  import { highlight } from "fumadocs-core/highlight";
5
-
6
5
  //#region src/components/codeblock.rsc.tsx
7
6
  async function ServerCodeBlock({ code, codeblock, ...options }) {
8
7
  return await highlight(code, {
9
8
  ...options,
10
9
  components: {
11
10
  pre: (props) => {
12
- CodeBlock, {
11
+ ({
13
12
  ...props,
14
13
  ...codeblock
15
- }, cn("my-0", props.className, codeblock?.className), Pre, props.children;
14
+ }), cn("my-0", props.className, codeblock?.className), props.children;
16
15
  },
17
16
  ...options.components
18
17
  }
19
18
  });
20
19
  }
21
-
22
20
  //#endregion
23
21
  export { ServerCodeBlock };
22
+
24
23
  //# sourceMappingURL=codeblock.rsc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock.rsc.js","names":["Base.CodeBlock","Base.Pre"],"sources":["../../src/components/codeblock.rsc.tsx"],"sourcesContent":["import * as Base from './codeblock';\nimport { highlight, type HighlightOptions } from 'fumadocs-core/highlight';\nimport { cn } from '@/utils/cn';\n\nexport type ServerCodeBlockProps = HighlightOptions & {\n code: string;\n\n /**\n * Extra props for the underlying `<CodeBlock />` component.\n *\n * Ignored if you defined your own `pre` component in `components`.\n */\n codeblock?: Base.CodeBlockProps;\n};\n\nexport async function ServerCodeBlock({ code, codeblock, ...options }: ServerCodeBlockProps) {\n return await highlight(code, {\n ...options,\n components: {\n pre: (props) => {\n <Base.CodeBlock\n {...props}\n {...codeblock}\n className={cn('my-0', props.className, codeblock?.className)}\n >\n <Base.Pre>{props.children}</Base.Pre>\n </Base.CodeBlock>;\n },\n ...options.components,\n },\n });\n}\n"],"mappings":";;;;;;AAeA,eAAsB,gBAAgB,EAAE,MAAM,WAAW,GAAG,WAAiC;AAC3F,QAAO,MAAM,UAAU,MAAM;EAC3B,GAAG;EACH,YAAY;GACV,MAAM,UAAU;AACd,IAACA,WAGC;KAFA,GAAI;KACJ,GAAI;KACyD,EAAlD,GAAG,QAAQ,MAAM,WAAW,WAAW,UAAU,EAE3DC,KAAU,MAAM;;GAGrB,GAAG,QAAQ;GACZ;EACF,CAAC"}
1
+ {"version":3,"file":"codeblock.rsc.js","names":["Base.CodeBlock","Base.Pre"],"sources":["../../src/components/codeblock.rsc.tsx"],"sourcesContent":["import * as Base from './codeblock';\nimport { highlight, type HighlightOptions } from 'fumadocs-core/highlight';\nimport { cn } from '@/utils/cn';\n\nexport type ServerCodeBlockProps = HighlightOptions & {\n code: string;\n\n /**\n * Extra props for the underlying `<CodeBlock />` component.\n *\n * Ignored if you defined your own `pre` component in `components`.\n */\n codeblock?: Base.CodeBlockProps;\n};\n\nexport async function ServerCodeBlock({ code, codeblock, ...options }: ServerCodeBlockProps) {\n return await highlight(code, {\n ...options,\n components: {\n pre: (props) => {\n <Base.CodeBlock\n {...props}\n {...codeblock}\n className={cn('my-0', props.className, codeblock?.className)}\n >\n <Base.Pre>{props.children}</Base.Pre>\n </Base.CodeBlock>;\n },\n ...options.components,\n },\n });\n}\n"],"mappings":";;;;;AAeA,eAAsB,gBAAgB,EAAE,MAAM,WAAW,GAAG,WAAiC;AAC3F,QAAO,MAAM,UAAU,MAAM;EAC3B,GAAG;EACH,YAAY;GACV,MAAM,UAAU;AACbA,KAGC;KAFA,GAAI;KACJ,GAAI;KACyD,GAAlD,GAAG,QAAQ,MAAM,WAAW,WAAW,UAAU,EAEjD,MAAM;;GAGrB,GAAG,QAAQ;GACZ;EACF,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { SearchLink, SharedProps, TagItem } from "../../contexts/search.js";
2
- import "./search.js";
3
2
  import { ReactNode } from "react";
4
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
5
4
  import { AlgoliaOptions } from "fumadocs-core/search/client";
@@ -1 +1 @@
1
- {"version":3,"file":"search-algolia.d.ts","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"mappings":";;;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,aAAA,EAAe,cAAA;EACf,KAAA,GAAQ,UAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANQ;;;;;EAaf,WAAA;EAd2D;;;;;EAqB3D,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,aAAA;EACA,IAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"search-algolia.d.ts","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"mappings":";;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,aAAA,EAAe,cAAA;EACf,KAAA,GAAQ,UAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANQ;;;;;EAaf,WAAA;EAd2D;;;;;EAqB3D,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,aAAA;EACA,IAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,12 +1,10 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useI18n } from "../../contexts/i18n.js";
4
3
  import { SearchDialog, SearchDialogClose, SearchDialogContent, SearchDialogFooter, SearchDialogHeader, SearchDialogIcon, SearchDialogInput, SearchDialogList, SearchDialogOverlay, TagsList, TagsListItem } from "./search.js";
5
4
  import { useMemo, useState } from "react";
6
5
  import { jsx, jsxs } from "react/jsx-runtime";
7
6
  import { useOnChange } from "fumadocs-core/utils/use-on-change";
8
7
  import { useDocsSearch } from "fumadocs-core/search/client";
9
-
10
8
  //#region src/components/dialog/search-algolia.tsx
11
9
  function AlgoliaSearchDialog({ searchOptions, tags = [], defaultTag, showAlgolia = false, allowClear = false, links = [], footer, ...props }) {
12
10
  const [tag, setTag] = useState(defaultTag);
@@ -62,7 +60,7 @@ function AlgoliaTitle() {
62
60
  children: "Search powered by Algolia"
63
61
  });
64
62
  }
65
-
66
63
  //#endregion
67
64
  export { AlgoliaSearchDialog as default };
65
+
68
66
  //# sourceMappingURL=search-algolia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-algolia.js","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"sourcesContent":["'use client';\n\nimport { type AlgoliaOptions, useDocsSearch } from 'fumadocs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from 'fumadocs-core/utils/use-on-change';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from 'fumadocs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\n\nexport interface AlgoliaSearchDialogProps extends SharedProps {\n searchOptions: AlgoliaOptions;\n links?: SearchLink[];\n\n footer?: ReactNode;\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Add the \"Powered by Algolia\" label, this is useful for free tier users\n *\n * @defaultValue false\n */\n showAlgolia?: boolean;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function AlgoliaSearchDialog({\n searchOptions,\n tags = [],\n defaultTag,\n showAlgolia = false,\n allowClear = false,\n links = [],\n footer,\n ...props\n}: AlgoliaSearchDialogProps) {\n const [tag, setTag] = useState(defaultTag);\n const { locale } = useI18n();\n const { search, setSearch, query } = useDocsSearch({\n type: 'algolia',\n tag,\n locale,\n ...searchOptions,\n });\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n const label = showAlgolia && <AlgoliaTitle />;\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 ? (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n {label}\n </TagsList>\n ) : (\n label\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n\nfunction AlgoliaTitle() {\n return (\n <a\n href=\"https://algolia.com\"\n rel=\"noreferrer noopener\"\n className=\"ms-auto text-xs text-fd-muted-foreground\"\n >\n Search powered by Algolia\n </a>\n );\n}\n"],"mappings":";;;;;;;;;;AA+CA,SAAwB,oBAAoB,EAC1C,eACA,OAAO,EAAE,EACT,YACA,cAAc,OACd,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,EAAE,QAAQ,WAAW,UAAU,cAAc;EACjD,MAAM;EACN;EACA;EACA,GAAG;EACJ,CAAC;CACF,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;CAEF,MAAM,QAAQ,eAAe,oBAAC,iBAAe;AAE7C,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;;GACvF,oBAAC,wBAAsB;GACvB,qBAAC,kCACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF,EACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB,IAC3D;GACtB,qBAAC,iCACE,KAAK,SAAS,IACb,qBAAC;IAAc;IAAK,aAAa;IAAoB;eAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf,EACD;KACQ,GAEX,OAED,UACkB;;GACR;;AAInB,SAAS,eAAe;AACtB,QACE,oBAAC;EACC,MAAK;EACL,KAAI;EACJ,WAAU;YACX;GAEG"}
1
+ {"version":3,"file":"search-algolia.js","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"sourcesContent":["'use client';\n\nimport { type AlgoliaOptions, useDocsSearch } from 'fumadocs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from 'fumadocs-core/utils/use-on-change';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from 'fumadocs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\n\nexport interface AlgoliaSearchDialogProps extends SharedProps {\n searchOptions: AlgoliaOptions;\n links?: SearchLink[];\n\n footer?: ReactNode;\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Add the \"Powered by Algolia\" label, this is useful for free tier users\n *\n * @defaultValue false\n */\n showAlgolia?: boolean;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function AlgoliaSearchDialog({\n searchOptions,\n tags = [],\n defaultTag,\n showAlgolia = false,\n allowClear = false,\n links = [],\n footer,\n ...props\n}: AlgoliaSearchDialogProps) {\n const [tag, setTag] = useState(defaultTag);\n const { locale } = useI18n();\n const { search, setSearch, query } = useDocsSearch({\n type: 'algolia',\n tag,\n locale,\n ...searchOptions,\n });\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n const label = showAlgolia && <AlgoliaTitle />;\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 ? (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n {label}\n </TagsList>\n ) : (\n label\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n\nfunction AlgoliaTitle() {\n return (\n <a\n href=\"https://algolia.com\"\n rel=\"noreferrer noopener\"\n className=\"ms-auto text-xs text-fd-muted-foreground\"\n >\n Search powered by Algolia\n </a>\n );\n}\n"],"mappings":";;;;;;;;AA+CA,SAAwB,oBAAoB,EAC1C,eACA,OAAO,EAAE,EACT,YACA,cAAc,OACd,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,EAAE,QAAQ,WAAW,UAAU,cAAc;EACjD,MAAM;EACN;EACA;EACA,GAAG;EACJ,CAAC;CACF,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;CAEF,MAAM,QAAQ,eAAe,oBAAC,cAAD,EAAgB,CAAA;AAE7C,QACE,qBAAC,cAAD;EAAsB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;YAAzF;GACE,oBAAC,qBAAD,EAAuB,CAAA;GACvB,qBAAC,qBAAD,EAAA,UAAA,CACE,qBAAC,oBAAD,EAAA,UAAA;IACE,oBAAC,kBAAD,EAAoB,CAAA;IACpB,oBAAC,mBAAD,EAAqB,CAAA;IACrB,oBAAC,mBAAD,EAAqB,CAAA;IACF,EAAA,CAAA,EACrB,oBAAC,kBAAD,EAAkB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,cAAgB,CAAA,CAC3D,EAAA,CAAA;GACtB,qBAAC,oBAAD,EAAA,UAAA,CACG,KAAK,SAAS,IACb,qBAAC,UAAD;IAAe;IAAK,aAAa;IAAoB;cAArD,CACG,KAAK,KAAK,QACT,oBAAC,cAAD;KAA8B,OAAO,IAAI;eACtC,IAAI;KACQ,EAFI,IAAI,MAER,CACf,EACD,MACQ;QAEX,OAED,OACkB,EAAA,CAAA;GACR;;;AAInB,SAAS,eAAe;AACtB,QACE,oBAAC,KAAD;EACE,MAAK;EACL,KAAI;EACJ,WAAU;YACX;EAEG,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import { SearchLink, SharedProps, TagItem } from "../../contexts/search.js";
2
- import "./search.js";
3
2
  import { ReactNode } from "react";
4
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
5
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"search-default.d.ts","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"mappings":";;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,KAAA,GAAQ,UAAA;;AADV;;EAME,IAAA;EAEA,UAAA;EACA,IAAA,GAAO,OAAA;EAYE;;;EAPT,GAAA;EAdgD;;;EAmBhD,OAAA;EAEA,MAAA,GAAS,SAAA;EAZT;;;;;EAmBA,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,UAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA;EACA,IAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"search-default.d.ts","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"mappings":";;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,KAAA,GAAQ,UAAA;;AADV;;EAME,IAAA;EAEA,UAAA;EACA,IAAA,GAAO,OAAA;EAYE;;;EAPT,GAAA;EAdgD;;;EAmBhD,OAAA;EAEA,MAAA,GAAS,SAAA;EAZT;;;;;EAmBA,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,UAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA;EACA,IAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,12 +1,10 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useI18n } from "../../contexts/i18n.js";
4
3
  import { SearchDialog, SearchDialogClose, SearchDialogContent, SearchDialogFooter, SearchDialogHeader, SearchDialogIcon, SearchDialogInput, SearchDialogList, SearchDialogOverlay, TagsList, TagsListItem } from "./search.js";
5
4
  import { useMemo, useState } from "react";
6
5
  import { jsx, jsxs } from "react/jsx-runtime";
7
6
  import { useOnChange } from "fumadocs-core/utils/use-on-change";
8
7
  import { useDocsSearch } from "fumadocs-core/search/client";
9
-
10
8
  //#region src/components/dialog/search-default.tsx
11
9
  function DefaultSearchDialog({ defaultTag, tags = [], api, delayMs, type = "fetch", allowClear = false, links = [], footer, ...props }) {
12
10
  const { locale } = useI18n();
@@ -60,7 +58,7 @@ function DefaultSearchDialog({ defaultTag, tags = [], api, delayMs, type = "fetc
60
58
  ]
61
59
  });
62
60
  }
63
-
64
61
  //#endregion
65
62
  export { DefaultSearchDialog as default };
63
+
66
64
  //# sourceMappingURL=search-default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-default.js","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"sourcesContent":["'use client';\n\nimport { useDocsSearch } from 'fumadocs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from 'fumadocs-core/utils/use-on-change';\nimport { useI18n } from '@/contexts/i18n';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from 'fumadocs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\n\nexport interface DefaultSearchDialogProps extends SharedProps {\n links?: SearchLink[];\n\n /**\n * @defaultValue 'fetch'\n */\n type?: 'fetch' | 'static';\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Search API URL\n */\n api?: string;\n\n /**\n * The debounced delay for performing a search.\n */\n delayMs?: number;\n\n footer?: ReactNode;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function DefaultSearchDialog({\n defaultTag,\n tags = [],\n api,\n delayMs,\n type = 'fetch',\n allowClear = false,\n links = [],\n footer,\n ...props\n}: DefaultSearchDialogProps) {\n const { locale } = useI18n();\n const [tag, setTag] = useState(defaultTag);\n const { search, setSearch, query } = useDocsSearch(\n type === 'fetch'\n ? {\n type: 'fetch',\n api,\n locale,\n tag,\n delayMs,\n }\n : {\n type: 'static',\n from: api,\n locale,\n tag,\n delayMs,\n },\n );\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 && (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n </TagsList>\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n"],"mappings":";;;;;;;;;;AAsDA,SAAwB,oBAAoB,EAC1C,YACA,OAAO,EAAE,EACT,KACA,SACA,OAAO,SACP,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,QAAQ,WAAW,UAAU,cACnC,SAAS,UACL;EACE,MAAM;EACN;EACA;EACA;EACA;EACD,GACD;EACE,MAAM;EACN,MAAM;EACN;EACA;EACA;EACD,CACN;CACD,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;AAEF,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;;GACvF,oBAAC,wBAAsB;GACvB,qBAAC,kCACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF,EACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB,IAC3D;GACtB,qBAAC,iCACE,KAAK,SAAS,KACb,oBAAC;IAAc;IAAK,aAAa;IAAoB;cAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf;KACO,EAEZ,UACkB;;GACR"}
1
+ {"version":3,"file":"search-default.js","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"sourcesContent":["'use client';\n\nimport { useDocsSearch } from 'fumadocs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from 'fumadocs-core/utils/use-on-change';\nimport { useI18n } from '@/contexts/i18n';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from 'fumadocs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\n\nexport interface DefaultSearchDialogProps extends SharedProps {\n links?: SearchLink[];\n\n /**\n * @defaultValue 'fetch'\n */\n type?: 'fetch' | 'static';\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Search API URL\n */\n api?: string;\n\n /**\n * The debounced delay for performing a search.\n */\n delayMs?: number;\n\n footer?: ReactNode;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function DefaultSearchDialog({\n defaultTag,\n tags = [],\n api,\n delayMs,\n type = 'fetch',\n allowClear = false,\n links = [],\n footer,\n ...props\n}: DefaultSearchDialogProps) {\n const { locale } = useI18n();\n const [tag, setTag] = useState(defaultTag);\n const { search, setSearch, query } = useDocsSearch(\n type === 'fetch'\n ? {\n type: 'fetch',\n api,\n locale,\n tag,\n delayMs,\n }\n : {\n type: 'static',\n from: api,\n locale,\n tag,\n delayMs,\n },\n );\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 && (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n </TagsList>\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n"],"mappings":";;;;;;;;AAsDA,SAAwB,oBAAoB,EAC1C,YACA,OAAO,EAAE,EACT,KACA,SACA,OAAO,SACP,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,QAAQ,WAAW,UAAU,cACnC,SAAS,UACL;EACE,MAAM;EACN;EACA;EACA;EACA;EACD,GACD;EACE,MAAM;EACN,MAAM;EACN;EACA;EACA;EACD,CACN;CACD,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;AAEF,QACE,qBAAC,cAAD;EAAsB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;YAAzF;GACE,oBAAC,qBAAD,EAAuB,CAAA;GACvB,qBAAC,qBAAD,EAAA,UAAA,CACE,qBAAC,oBAAD,EAAA,UAAA;IACE,oBAAC,kBAAD,EAAoB,CAAA;IACpB,oBAAC,mBAAD,EAAqB,CAAA;IACrB,oBAAC,mBAAD,EAAqB,CAAA;IACF,EAAA,CAAA,EACrB,oBAAC,kBAAD,EAAkB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,cAAgB,CAAA,CAC3D,EAAA,CAAA;GACtB,qBAAC,oBAAD,EAAA,UAAA,CACG,KAAK,SAAS,KACb,oBAAC,UAAD;IAAe;IAAK,aAAa;IAAoB;cAClD,KAAK,KAAK,QACT,oBAAC,cAAD;KAA8B,OAAO,IAAI;eACtC,IAAI;KACQ,EAFI,IAAI,MAER,CACf;IACO,CAAA,EAEZ,OACkB,EAAA,CAAA;GACR"}
@@ -1,5 +1,4 @@
1
1
  import { SearchLink, SharedProps, TagItem } from "../../contexts/search.js";
2
- import "./search.js";
3
2
  import { ReactNode } from "react";
4
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
5
4
  import { OramaCloudOptions } from "fumadocs-core/search/client";
@@ -1 +1 @@
1
- {"version":3,"file":"search-orama.d.ts","names":[],"sources":["../../../src/components/dialog/search-orama.tsx"],"mappings":";;;;;;;UAuBiB,sBAAA,SAA+B,WAAA;EAC9C,KAAA,GAAQ,UAAA;EACR,MAAA,EAAQ,iBAAA;EACR,aAAA,GAAgB,iBAAA;EAChB,KAAA,GAAQ,iBAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANS;;;;;EAahB,SAAA;EAhByD;;;;;EAuBzD,UAAA;AAAA;;;;iBAMsB,iBAAA,CAAA;EACtB,MAAA;EACA,aAAA;EACA,IAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,sBAAA,GAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"search-orama.d.ts","names":[],"sources":["../../../src/components/dialog/search-orama.tsx"],"mappings":";;;;;;UAuBiB,sBAAA,SAA+B,WAAA;EAC9C,KAAA,GAAQ,UAAA;EACR,MAAA,EAAQ,iBAAA;EACR,aAAA,GAAgB,iBAAA;EAChB,KAAA,GAAQ,iBAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANS;;;;;EAahB,SAAA;EAhByD;;;;;EAuBzD,UAAA;AAAA;;;;iBAMsB,iBAAA,CAAA;EACtB,MAAA;EACA,aAAA;EACA,IAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,sBAAA,GAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA"}