fumadocs-ui 11.3.1 → 12.0.0
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.
- package/dist/{chunk-24NYFO7H.js → chunk-2KMKNVSN.js} +2 -4
- package/dist/{chunk-C4PI62MH.js → chunk-34Z7WODD.js} +6 -8
- package/dist/{chunk-GDRBCN6Q.js → chunk-3F57TIUQ.js} +21 -7
- package/dist/{chunk-PXDQVGII.js → chunk-7EMVRXMS.js} +10 -1
- package/dist/{chunk-7F2LGCS6.js → chunk-AN2Y6MA2.js} +2 -4
- package/dist/{chunk-PW7TBOIJ.js → chunk-CRYPD6UZ.js} +2 -1
- package/dist/{chunk-UKE65HV3.js → chunk-IOHAG6BY.js} +1 -1
- package/dist/chunk-JQW5DMD2.js +226 -0
- package/dist/{chunk-WNKY4RA5.js → chunk-UBVEKNRF.js} +1 -1
- package/dist/{chunk-E2VA3Y4S.js → chunk-XXVXIK4M.js} +2 -3
- package/dist/components/accordion.js +2 -2
- package/dist/components/api.js +5 -8
- package/dist/components/callout.js +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/codeblock.js +3 -3
- package/dist/components/dialog/search-algolia.js +4 -3
- package/dist/components/dialog/search-default.js +4 -3
- package/dist/components/dialog/search.js +4 -3
- package/dist/components/files.js +1 -1
- package/dist/components/heading.js +2 -2
- package/dist/components/image-zoom.js +4 -6
- package/dist/components/inline-toc.js +1 -1
- package/dist/components/layout/language-toggle.d.ts +6 -0
- package/dist/components/layout/language-toggle.js +58 -0
- package/dist/components/layout/root-toggle.d.ts +16 -0
- package/dist/components/layout/root-toggle.js +60 -0
- package/dist/components/roll-button.js +2 -3
- package/dist/components/steps.js +1 -1
- package/dist/components/tabs.js +6 -11
- package/dist/components/type-table.js +2 -2
- package/dist/docs.client.d.ts +13 -0
- package/dist/docs.client.js +396 -0
- package/dist/{i18n-p5QWhj_3.d.ts → i18n-CE8z-AAs.d.ts} +1 -0
- package/dist/i18n.d.ts +3 -6
- package/dist/i18n.js +5 -104
- package/dist/{layout-vxXAvjoq.d.ts → layout.client-Duq0TTke.d.ts} +23 -15
- package/dist/layout.client.d.ts +2 -8
- package/dist/layout.client.js +39 -571
- package/dist/layout.d.ts +1 -1
- package/dist/layout.js +42 -28
- package/dist/mdx.client.js +3 -3
- package/dist/mdx.js +4 -4
- package/dist/page.client.js +7 -8
- package/dist/page.js +19 -10
- package/dist/provider.d.ts +12 -13
- package/dist/provider.js +10 -11
- package/dist/style.css +1 -1
- package/dist/tailwind-plugin.cjs +34 -43
- package/dist/tailwind-plugin.js +35 -44
- package/dist/twoslash/popup.js +8 -14
- package/dist/twoslash.css +1 -1
- package/package.json +4 -5
- /package/dist/{chunk-6C3VEZWH.js → chunk-MLKGABMK.js} +0 -0
- /package/dist/{tree-cqNEopxM.d.ts → tree-CrKzI9Nz.d.ts} +0 -0
|
@@ -9,8 +9,7 @@ function useCopyButton(onCopy) {
|
|
|
9
9
|
const [checked, setChecked] = useState(false);
|
|
10
10
|
const timeoutRef = useRef(null);
|
|
11
11
|
const onClick = useCallback(() => {
|
|
12
|
-
if (timeoutRef.current)
|
|
13
|
-
window.clearTimeout(timeoutRef.current);
|
|
12
|
+
if (timeoutRef.current) window.clearTimeout(timeoutRef.current);
|
|
14
13
|
timeoutRef.current = window.setTimeout(() => {
|
|
15
14
|
setChecked(false);
|
|
16
15
|
}, 1500);
|
|
@@ -19,8 +18,7 @@ function useCopyButton(onCopy) {
|
|
|
19
18
|
}, [onCopy]);
|
|
20
19
|
useEffect(() => {
|
|
21
20
|
return () => {
|
|
22
|
-
if (timeoutRef.current)
|
|
23
|
-
window.clearTimeout(timeoutRef.current);
|
|
21
|
+
if (timeoutRef.current) window.clearTimeout(timeoutRef.current);
|
|
24
22
|
};
|
|
25
23
|
}, []);
|
|
26
24
|
return [checked, onClick];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hasActive
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AN2Y6MA2.js";
|
|
4
4
|
|
|
5
5
|
// src/contexts/tree.tsx
|
|
6
6
|
import { usePathname } from "next/navigation";
|
|
@@ -11,8 +11,7 @@ function findRoot(items, pathname) {
|
|
|
11
11
|
for (const item of items) {
|
|
12
12
|
if (item.type === "folder") {
|
|
13
13
|
const root = findRoot(item.children, pathname);
|
|
14
|
-
if (root)
|
|
15
|
-
return root;
|
|
14
|
+
if (root) return root;
|
|
16
15
|
if (item.root === true && hasActive(item.children, pathname)) {
|
|
17
16
|
return item;
|
|
18
17
|
}
|
|
@@ -21,12 +20,10 @@ function findRoot(items, pathname) {
|
|
|
21
20
|
}
|
|
22
21
|
function getNavigationList(tree) {
|
|
23
22
|
return tree.flatMap((node) => {
|
|
24
|
-
if (node.type === "separator")
|
|
25
|
-
return [];
|
|
23
|
+
if (node.type === "separator") return [];
|
|
26
24
|
if (node.type === "folder") {
|
|
27
25
|
const children = getNavigationList(node.children);
|
|
28
|
-
if (!node.root && node.index)
|
|
29
|
-
children.unshift(node.index);
|
|
26
|
+
if (!node.root && node.index) children.unshift(node.index);
|
|
30
27
|
return children;
|
|
31
28
|
}
|
|
32
29
|
return !node.external ? [node] : [];
|
|
@@ -39,9 +36,10 @@ function TreeContextProvider({
|
|
|
39
36
|
const pathname = usePathname();
|
|
40
37
|
const value = useMemo(() => {
|
|
41
38
|
const root = findRoot(tree.children, pathname) ?? tree;
|
|
39
|
+
const navigation = getNavigationList(root.children);
|
|
42
40
|
return {
|
|
43
41
|
root,
|
|
44
|
-
navigation
|
|
42
|
+
navigation,
|
|
45
43
|
tree
|
|
46
44
|
};
|
|
47
45
|
}, [pathname, tree]);
|
|
@@ -1,21 +1,34 @@
|
|
|
1
1
|
// src/contexts/sidebar.tsx
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
createContext,
|
|
4
|
+
useContext,
|
|
5
|
+
useState,
|
|
6
|
+
useMemo,
|
|
7
|
+
useRef,
|
|
8
|
+
useEffect
|
|
9
|
+
} from "react";
|
|
10
|
+
import { usePathname } from "next/navigation";
|
|
3
11
|
import { SidebarProvider as BaseProvider } from "fumadocs-core/sidebar";
|
|
4
12
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
var SidebarContext = createContext(
|
|
6
|
-
void 0
|
|
7
|
-
);
|
|
13
|
+
var SidebarContext = createContext(void 0);
|
|
8
14
|
function useSidebar() {
|
|
9
15
|
const ctx = useContext(SidebarContext);
|
|
10
|
-
if (!ctx)
|
|
11
|
-
throw new Error("Missing root provider");
|
|
16
|
+
if (!ctx) throw new Error("Missing root provider");
|
|
12
17
|
return ctx;
|
|
13
18
|
}
|
|
14
19
|
function SidebarProvider({
|
|
15
20
|
children
|
|
16
21
|
}) {
|
|
22
|
+
const closeOnRedirect = useRef(false);
|
|
17
23
|
const [open, setOpen] = useState(false);
|
|
18
24
|
const [collapsed, setCollapsed] = useState(false);
|
|
25
|
+
const pathname = usePathname();
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (closeOnRedirect.current) {
|
|
28
|
+
setOpen(false);
|
|
29
|
+
closeOnRedirect.current = false;
|
|
30
|
+
}
|
|
31
|
+
}, [pathname]);
|
|
19
32
|
return /* @__PURE__ */ jsx(
|
|
20
33
|
SidebarContext.Provider,
|
|
21
34
|
{
|
|
@@ -24,7 +37,8 @@ function SidebarProvider({
|
|
|
24
37
|
open,
|
|
25
38
|
setOpen,
|
|
26
39
|
collapsed,
|
|
27
|
-
setCollapsed
|
|
40
|
+
setCollapsed,
|
|
41
|
+
closeOnRedirect
|
|
28
42
|
}),
|
|
29
43
|
[open, collapsed]
|
|
30
44
|
),
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useSidebar
|
|
3
|
+
} from "./chunk-3F57TIUQ.js";
|
|
1
4
|
import {
|
|
2
5
|
useSearchContext
|
|
3
6
|
} from "./chunk-FSPYEOFC.js";
|
|
4
7
|
import {
|
|
5
8
|
useI18n
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CRYPD6UZ.js";
|
|
7
10
|
import {
|
|
8
11
|
buttonVariants
|
|
9
12
|
} from "./chunk-7GZKFBAP.js";
|
|
@@ -180,11 +183,17 @@ function Search2({
|
|
|
180
183
|
const { text } = useI18n();
|
|
181
184
|
const router = useRouter();
|
|
182
185
|
const { setOpenSearch } = useSearchContext();
|
|
186
|
+
const sidebar = useSidebar();
|
|
183
187
|
const items = results === "empty" ? defaultItems : results;
|
|
184
188
|
const hideList = results === "empty" && defaultItems.length === 0;
|
|
185
189
|
const onOpen = (url) => {
|
|
186
190
|
router.push(url);
|
|
187
191
|
setOpenSearch(false);
|
|
192
|
+
if (location.pathname === url.split("#")[0]) {
|
|
193
|
+
sidebar.setOpen(false);
|
|
194
|
+
} else {
|
|
195
|
+
sidebar.closeOnRedirect.current = true;
|
|
196
|
+
}
|
|
188
197
|
};
|
|
189
198
|
return /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
190
199
|
/* @__PURE__ */ jsx2(
|
|
@@ -4,10 +4,8 @@ function isActive(url, pathname, nested = true) {
|
|
|
4
4
|
return url === pathname || nested && pathname.startsWith(`${url}/`);
|
|
5
5
|
}
|
|
6
6
|
function replaceOrDefault(obj, def) {
|
|
7
|
-
if (obj?.enabled === false)
|
|
8
|
-
|
|
9
|
-
if (obj?.component !== void 0)
|
|
10
|
-
return obj.component;
|
|
7
|
+
if (obj?.enabled === false) return;
|
|
8
|
+
if (obj?.component !== void 0) return obj.component;
|
|
11
9
|
return def;
|
|
12
10
|
}
|
|
13
11
|
function hasActive(items, url) {
|
|
@@ -11,7 +11,7 @@ function Heading({
|
|
|
11
11
|
...props
|
|
12
12
|
}) {
|
|
13
13
|
const As = as ?? "h1";
|
|
14
|
-
return /* @__PURE__ */ jsx(As, { className: twMerge("scroll-m-20", className), ...props, children: props.id ? /* @__PURE__ */ jsxs("a", { href: `#${props.id}`, className: "
|
|
14
|
+
return /* @__PURE__ */ jsx(As, { className: twMerge("scroll-m-20", className), ...props, children: props.id ? /* @__PURE__ */ jsxs("a", { href: `#${props.id}`, className: "group", children: [
|
|
15
15
|
props.children,
|
|
16
16
|
/* @__PURE__ */ jsx(
|
|
17
17
|
LinkIcon,
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Popover,
|
|
3
|
+
PopoverContent,
|
|
4
|
+
PopoverTrigger
|
|
5
|
+
} from "./chunk-UBVEKNRF.js";
|
|
6
|
+
import {
|
|
7
|
+
isActive
|
|
8
|
+
} from "./chunk-AN2Y6MA2.js";
|
|
9
|
+
import {
|
|
10
|
+
useSearchContext
|
|
11
|
+
} from "./chunk-FSPYEOFC.js";
|
|
12
|
+
import {
|
|
13
|
+
useI18n
|
|
14
|
+
} from "./chunk-CRYPD6UZ.js";
|
|
15
|
+
import {
|
|
16
|
+
Collapsible,
|
|
17
|
+
CollapsibleContent,
|
|
18
|
+
CollapsibleTrigger
|
|
19
|
+
} from "./chunk-7XPZOMJ2.js";
|
|
20
|
+
import {
|
|
21
|
+
buttonVariants
|
|
22
|
+
} from "./chunk-7GZKFBAP.js";
|
|
23
|
+
import {
|
|
24
|
+
twMerge
|
|
25
|
+
} from "./chunk-TK3TM3MR.js";
|
|
26
|
+
|
|
27
|
+
// src/components/layout/search-toggle.tsx
|
|
28
|
+
import { useCallback } from "react";
|
|
29
|
+
import { SearchIcon } from "lucide-react";
|
|
30
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
31
|
+
function SearchToggle(props) {
|
|
32
|
+
const { setOpenSearch } = useSearchContext();
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
"button",
|
|
35
|
+
{
|
|
36
|
+
type: "button",
|
|
37
|
+
className: twMerge(
|
|
38
|
+
buttonVariants({
|
|
39
|
+
size: "icon",
|
|
40
|
+
color: "ghost",
|
|
41
|
+
className: props.className
|
|
42
|
+
})
|
|
43
|
+
),
|
|
44
|
+
"aria-label": "Open Search",
|
|
45
|
+
onClick: useCallback(() => {
|
|
46
|
+
setOpenSearch(true);
|
|
47
|
+
}, [setOpenSearch]),
|
|
48
|
+
children: /* @__PURE__ */ jsx(SearchIcon, {})
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
function LargeSearchToggle(props) {
|
|
53
|
+
const { hotKey, setOpenSearch } = useSearchContext();
|
|
54
|
+
const { text } = useI18n();
|
|
55
|
+
return /* @__PURE__ */ jsxs(
|
|
56
|
+
"button",
|
|
57
|
+
{
|
|
58
|
+
type: "button",
|
|
59
|
+
...props,
|
|
60
|
+
className: twMerge(
|
|
61
|
+
"inline-flex items-center gap-2 rounded-full border bg-secondary/50 p-1.5 text-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground",
|
|
62
|
+
props.className
|
|
63
|
+
),
|
|
64
|
+
onClick: useCallback(() => {
|
|
65
|
+
setOpenSearch(true);
|
|
66
|
+
}, [setOpenSearch]),
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "ms-1 size-4" }),
|
|
69
|
+
text.search,
|
|
70
|
+
/* @__PURE__ */ jsx("div", { className: "ms-auto inline-flex gap-0.5 text-xs", children: hotKey.map((k, i) => /* @__PURE__ */ jsx("kbd", { className: "rounded-md border bg-background px-1.5", children: k.display }, i)) })
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// src/components/layout/theme-toggle.tsx
|
|
77
|
+
import { cva } from "class-variance-authority";
|
|
78
|
+
import { Moon, Sun } from "lucide-react";
|
|
79
|
+
import { useTheme } from "next-themes";
|
|
80
|
+
import { useCallback as useCallback2 } from "react";
|
|
81
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
82
|
+
var buttonVariants2 = cva("size-7 rounded-full p-1.5 text-muted-foreground", {
|
|
83
|
+
variants: {
|
|
84
|
+
dark: {
|
|
85
|
+
true: "dark:bg-accent dark:text-accent-foreground",
|
|
86
|
+
false: "bg-accent text-accent-foreground dark:bg-transparent dark:text-muted-foreground"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
function ThemeToggle({
|
|
91
|
+
className,
|
|
92
|
+
...props
|
|
93
|
+
}) {
|
|
94
|
+
const { setTheme, resolvedTheme } = useTheme();
|
|
95
|
+
const onToggle = useCallback2(() => {
|
|
96
|
+
setTheme(resolvedTheme === "dark" ? "light" : "dark");
|
|
97
|
+
}, [setTheme, resolvedTheme]);
|
|
98
|
+
return /* @__PURE__ */ jsxs2(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
type: "button",
|
|
102
|
+
className: twMerge(
|
|
103
|
+
"inline-flex items-center rounded-full border p-0.5",
|
|
104
|
+
className
|
|
105
|
+
),
|
|
106
|
+
"aria-label": "Toggle Theme",
|
|
107
|
+
onClick: onToggle,
|
|
108
|
+
...props,
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ jsx2(Sun, { className: twMerge(buttonVariants2({ dark: false })) }),
|
|
111
|
+
/* @__PURE__ */ jsx2(Moon, { className: twMerge(buttonVariants2({ dark: true })) })
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// src/components/link-item.tsx
|
|
118
|
+
import Link from "fumadocs-core/link";
|
|
119
|
+
import { ChevronDown } from "lucide-react";
|
|
120
|
+
import { usePathname } from "next/navigation";
|
|
121
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
122
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
123
|
+
var linkItemVariants = cva2(
|
|
124
|
+
"inline-flex items-center gap-1.5 rounded-lg p-2 text-muted-foreground transition-colors [&_svg]:size-4",
|
|
125
|
+
{
|
|
126
|
+
variants: {
|
|
127
|
+
active: {
|
|
128
|
+
true: "bg-accent text-accent-foreground",
|
|
129
|
+
false: "hover:bg-accent"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
defaultVariants: {
|
|
133
|
+
active: false
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
function LinkItem({
|
|
138
|
+
item,
|
|
139
|
+
on = "nav",
|
|
140
|
+
className,
|
|
141
|
+
...props
|
|
142
|
+
}) {
|
|
143
|
+
const pathname = usePathname();
|
|
144
|
+
if (item.type === "menu" && on === "nav") {
|
|
145
|
+
return /* @__PURE__ */ jsxs3(Popover, { children: [
|
|
146
|
+
/* @__PURE__ */ jsxs3(
|
|
147
|
+
PopoverTrigger,
|
|
148
|
+
{
|
|
149
|
+
className: twMerge(
|
|
150
|
+
linkItemVariants({ className }),
|
|
151
|
+
"data-[state=open]:bg-accent"
|
|
152
|
+
),
|
|
153
|
+
...props,
|
|
154
|
+
children: [
|
|
155
|
+
item.text,
|
|
156
|
+
/* @__PURE__ */ jsx3(ChevronDown, { className: "ml-auto size-4" })
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
),
|
|
160
|
+
/* @__PURE__ */ jsx3(PopoverContent, { className: "flex flex-col", children: item.items.map((child, i) => /* @__PURE__ */ jsx3(LinkItem, { item: child, on: "menu" }, i)) })
|
|
161
|
+
] });
|
|
162
|
+
}
|
|
163
|
+
if (item.type === "menu") {
|
|
164
|
+
return /* @__PURE__ */ jsxs3(Collapsible, { className: "flex flex-col", children: [
|
|
165
|
+
/* @__PURE__ */ jsxs3(
|
|
166
|
+
CollapsibleTrigger,
|
|
167
|
+
{
|
|
168
|
+
className: twMerge(linkItemVariants({ className }), "group/link"),
|
|
169
|
+
...props,
|
|
170
|
+
children: [
|
|
171
|
+
item.icon,
|
|
172
|
+
item.text,
|
|
173
|
+
/* @__PURE__ */ jsx3(ChevronDown, { className: "ml-auto size-4 group-data-[state=closed]/link:-rotate-90" })
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
),
|
|
177
|
+
/* @__PURE__ */ jsx3(CollapsibleContent, { children: /* @__PURE__ */ jsx3("div", { className: "flex flex-col py-1 ps-4", children: item.items.map((child, i) => /* @__PURE__ */ jsx3(LinkItem, { item: child, on: "menu" }, i)) }) })
|
|
178
|
+
] });
|
|
179
|
+
}
|
|
180
|
+
const activeType = item.active ?? "url";
|
|
181
|
+
const active = activeType !== "none" ? isActive(item.url, pathname, activeType === "nested-url") : false;
|
|
182
|
+
if (item.type === "secondary" && on === "nav") {
|
|
183
|
+
return /* @__PURE__ */ jsx3(
|
|
184
|
+
Link,
|
|
185
|
+
{
|
|
186
|
+
"aria-label": item.text,
|
|
187
|
+
href: item.url,
|
|
188
|
+
external: item.external,
|
|
189
|
+
className: twMerge(
|
|
190
|
+
buttonVariants({
|
|
191
|
+
size: "icon",
|
|
192
|
+
color: "ghost",
|
|
193
|
+
className
|
|
194
|
+
})
|
|
195
|
+
),
|
|
196
|
+
...props,
|
|
197
|
+
children: item.icon
|
|
198
|
+
}
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
return /* @__PURE__ */ jsxs3(
|
|
202
|
+
Link,
|
|
203
|
+
{
|
|
204
|
+
href: item.url,
|
|
205
|
+
external: item.external,
|
|
206
|
+
className: twMerge(
|
|
207
|
+
linkItemVariants({
|
|
208
|
+
active,
|
|
209
|
+
className
|
|
210
|
+
})
|
|
211
|
+
),
|
|
212
|
+
...props,
|
|
213
|
+
children: [
|
|
214
|
+
on === "menu" ? item.icon : null,
|
|
215
|
+
item.text
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export {
|
|
222
|
+
SearchToggle,
|
|
223
|
+
LargeSearchToggle,
|
|
224
|
+
LinkItem,
|
|
225
|
+
ThemeToggle
|
|
226
|
+
};
|
|
@@ -16,7 +16,7 @@ var PopoverContent = React.forwardRef(({ className, align = "center", sideOffset
|
|
|
16
16
|
sideOffset,
|
|
17
17
|
side: "bottom",
|
|
18
18
|
className: twMerge(
|
|
19
|
-
"z-50 min-w-[
|
|
19
|
+
"z-50 min-w-[240px] max-w-[98vw] rounded-lg border bg-popover p-2 text-sm text-popover-foreground shadow-md outline-none data-[state=closed]:animate-popover-out data-[state=open]:animate-popover-in",
|
|
20
20
|
className
|
|
21
21
|
),
|
|
22
22
|
...props
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-VYTHQTZE.js";
|
|
6
6
|
import {
|
|
7
7
|
useCopyButton
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2KMKNVSN.js";
|
|
9
9
|
import {
|
|
10
10
|
buttonVariants
|
|
11
11
|
} from "./chunk-7GZKFBAP.js";
|
|
@@ -28,8 +28,7 @@ var CodeBlock = forwardRef(
|
|
|
28
28
|
const areaRef = useRef(null);
|
|
29
29
|
const onCopy = useCallback(() => {
|
|
30
30
|
const pre = areaRef.current?.getElementsByTagName("pre").item(0);
|
|
31
|
-
if (!pre)
|
|
32
|
-
return;
|
|
31
|
+
if (!pre) return;
|
|
33
32
|
const clone = pre.cloneNode(true);
|
|
34
33
|
clone.querySelectorAll(".nd-copy-ignore").forEach((node) => {
|
|
35
34
|
node.remove();
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
useCopyButton
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-2KMKNVSN.js";
|
|
5
5
|
import {
|
|
6
6
|
buttonVariants
|
|
7
7
|
} from "../chunk-7GZKFBAP.js";
|
|
8
8
|
import {
|
|
9
9
|
twMerge
|
|
10
10
|
} from "../chunk-TK3TM3MR.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-MLKGABMK.js";
|
|
12
12
|
|
|
13
13
|
// src/components/accordion.tsx
|
|
14
14
|
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
package/dist/components/api.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
twMerge
|
|
7
7
|
} from "../chunk-TK3TM3MR.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-MLKGABMK.js";
|
|
9
9
|
|
|
10
10
|
// src/components/api.tsx
|
|
11
11
|
import { useState } from "react";
|
|
@@ -56,12 +56,9 @@ function APIInfo({
|
|
|
56
56
|
...props
|
|
57
57
|
}) {
|
|
58
58
|
let color = "green";
|
|
59
|
-
if (["GET", "HEAD"].includes(method))
|
|
60
|
-
|
|
61
|
-
if (["
|
|
62
|
-
color = "yellow";
|
|
63
|
-
if (["DELETE"].includes(method))
|
|
64
|
-
color = "red";
|
|
59
|
+
if (["GET", "HEAD"].includes(method)) color = "green";
|
|
60
|
+
if (["POST", "PATCH", "PUT"].includes(method)) color = "yellow";
|
|
61
|
+
if (["DELETE"].includes(method)) color = "red";
|
|
65
62
|
return /* @__PURE__ */ jsxs("div", { className: twMerge("flex-1", className), ...props, children: [
|
|
66
63
|
/* @__PURE__ */ jsxs("h2", { className: "not-prose mb-2 inline-flex items-center gap-3 font-mono", children: [
|
|
67
64
|
/* @__PURE__ */ jsx("div", { className: twMerge(badgeVariants({ color })), children: method }),
|
|
@@ -96,7 +93,7 @@ function APIExample({
|
|
|
96
93
|
return /* @__PURE__ */ jsxs(
|
|
97
94
|
"div",
|
|
98
95
|
{
|
|
99
|
-
className: twMerge("sticky top-
|
|
96
|
+
className: twMerge("sticky top-6 h-fit xl:w-2/5 xl:min-w-[400px]", className),
|
|
100
97
|
...props,
|
|
101
98
|
children: [
|
|
102
99
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-4 xl:hidden", children: [
|
package/dist/components/card.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
CodeBlock,
|
|
4
4
|
Pre
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-XXVXIK4M.js";
|
|
6
6
|
import "../chunk-VYTHQTZE.js";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-2KMKNVSN.js";
|
|
8
8
|
import "../chunk-7GZKFBAP.js";
|
|
9
9
|
import "../chunk-TK3TM3MR.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-MLKGABMK.js";
|
|
11
11
|
export {
|
|
12
12
|
CodeBlock,
|
|
13
13
|
Pre
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SearchDialog
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-7EMVRXMS.js";
|
|
5
|
+
import "../../chunk-3F57TIUQ.js";
|
|
5
6
|
import "../../chunk-FSPYEOFC.js";
|
|
6
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-CRYPD6UZ.js";
|
|
7
8
|
import "../../chunk-7GZKFBAP.js";
|
|
8
9
|
import "../../chunk-TK3TM3MR.js";
|
|
9
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-MLKGABMK.js";
|
|
10
11
|
|
|
11
12
|
// src/components/dialog/search-algolia.tsx
|
|
12
13
|
import {
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
SearchDialog
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-7EMVRXMS.js";
|
|
5
|
+
import "../../chunk-3F57TIUQ.js";
|
|
5
6
|
import "../../chunk-FSPYEOFC.js";
|
|
6
7
|
import {
|
|
7
8
|
useI18n
|
|
8
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-CRYPD6UZ.js";
|
|
9
10
|
import "../../chunk-7GZKFBAP.js";
|
|
10
11
|
import "../../chunk-TK3TM3MR.js";
|
|
11
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-MLKGABMK.js";
|
|
12
13
|
|
|
13
14
|
// src/components/dialog/search-default.tsx
|
|
14
15
|
import { useDocsSearch } from "fumadocs-core/search/client";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SearchDialog
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-7EMVRXMS.js";
|
|
4
|
+
import "../../chunk-3F57TIUQ.js";
|
|
4
5
|
import "../../chunk-FSPYEOFC.js";
|
|
5
|
-
import "../../chunk-
|
|
6
|
+
import "../../chunk-CRYPD6UZ.js";
|
|
6
7
|
import "../../chunk-7GZKFBAP.js";
|
|
7
8
|
import "../../chunk-TK3TM3MR.js";
|
|
8
|
-
import "../../chunk-
|
|
9
|
+
import "../../chunk-MLKGABMK.js";
|
|
9
10
|
export {
|
|
10
11
|
SearchDialog
|
|
11
12
|
};
|
package/dist/components/files.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
defaultImageSizes
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-AN2Y6MA2.js";
|
|
5
|
+
import "../chunk-MLKGABMK.js";
|
|
6
6
|
|
|
7
7
|
// src/components/image-zoom.tsx
|
|
8
8
|
import Image from "next/image";
|
|
@@ -10,10 +10,8 @@ import Zoom from "react-medium-image-zoom";
|
|
|
10
10
|
import "../../dist/image-zoom.css";
|
|
11
11
|
import { jsx } from "react/jsx-runtime";
|
|
12
12
|
function getImageSrc(src) {
|
|
13
|
-
if (typeof src === "string")
|
|
14
|
-
|
|
15
|
-
if ("default" in src)
|
|
16
|
-
return src.default.src;
|
|
13
|
+
if (typeof src === "string") return src;
|
|
14
|
+
if ("default" in src) return src.default.src;
|
|
17
15
|
return src.src;
|
|
18
16
|
}
|
|
19
17
|
function ImageZoom({
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PopoverProps } from '@radix-ui/react-popover';
|
|
2
|
+
|
|
3
|
+
type LanguageSelectProps = Omit<PopoverProps, 'open' | 'onOpenChange'>;
|
|
4
|
+
declare function LanguageToggle(props: LanguageSelectProps): React.ReactElement;
|
|
5
|
+
|
|
6
|
+
export { type LanguageSelectProps, LanguageToggle };
|