fumadocs-ui 16.2.2 → 16.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/sidebar/base.d.ts +12 -4
- package/dist/components/sidebar/base.d.ts.map +1 -1
- package/dist/components/sidebar/base.js +19 -11
- package/dist/components/sidebar/page-tree.js +1 -1
- package/dist/layouts/docs/sidebar.d.ts.map +1 -1
- package/dist/layouts/docs/sidebar.js +5 -4
- package/dist/layouts/notebook/sidebar.d.ts.map +1 -1
- package/dist/layouts/notebook/sidebar.js +5 -4
- package/package.json +5 -5
|
@@ -35,6 +35,12 @@ type Mode = 'drawer' | 'full';
|
|
|
35
35
|
declare const SidebarContext: import("react").Context<SidebarContext | null>;
|
|
36
36
|
export declare function SidebarProvider({ defaultOpenLevel, prefetch, children, }: SidebarProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
37
37
|
export declare function useSidebar(): SidebarContext;
|
|
38
|
+
export declare function useFolder(): {
|
|
39
|
+
open: boolean;
|
|
40
|
+
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
41
|
+
depth: number;
|
|
42
|
+
collapsible: boolean;
|
|
43
|
+
} | null;
|
|
38
44
|
export declare function useFolderDepth(): number;
|
|
39
45
|
export declare function SidebarContent({ children, }: {
|
|
40
46
|
children: (state: {
|
|
@@ -52,11 +58,13 @@ export declare function SidebarSeparator(props: ComponentProps<'p'>): import("re
|
|
|
52
58
|
export declare function SidebarItem({ icon, children, ...props }: LinkProps & {
|
|
53
59
|
icon?: ReactNode;
|
|
54
60
|
}): import("react/jsx-runtime").JSX.Element;
|
|
55
|
-
export declare function SidebarFolder({ defaultOpen:
|
|
56
|
-
|
|
61
|
+
export declare function SidebarFolder({ defaultOpen: defaultOpenProp, collapsible, active, children, ...props }: ComponentProps<'div'> & {
|
|
62
|
+
active?: boolean;
|
|
63
|
+
defaultOpen?: boolean;
|
|
64
|
+
collapsible?: boolean;
|
|
57
65
|
}): import("react/jsx-runtime").JSX.Element;
|
|
58
|
-
export declare function SidebarFolderTrigger(props: CollapsibleTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
59
|
-
export declare function SidebarFolderLink(props: LinkProps): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
export declare function SidebarFolderTrigger({ children, ...props }: CollapsibleTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function SidebarFolderLink({ children, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;
|
|
60
68
|
export declare function SidebarFolderContent(props: CollapsibleContentProps): import("react/jsx-runtime").JSX.Element;
|
|
61
69
|
export declare function SidebarTrigger({ children, ...props }: ComponentProps<'button'>): import("react/jsx-runtime").JSX.Element;
|
|
62
70
|
export declare function SidebarCollapseTrigger(props: ComponentProps<'button'>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/base.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAMrC,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,KAAK,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9B,QAAA,MAAM,cAAc,gDAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/base.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,9 @@ export function useSidebar() {
|
|
|
43
43
|
throw new Error('Missing SidebarContext, make sure you have wrapped the component in <DocsLayout /> and the context is available.');
|
|
44
44
|
return ctx;
|
|
45
45
|
}
|
|
46
|
+
export function useFolder() {
|
|
47
|
+
return use(FolderContext);
|
|
48
|
+
}
|
|
46
49
|
export function useFolderDepth() {
|
|
47
50
|
return use(FolderContext)?.depth ?? 0;
|
|
48
51
|
}
|
|
@@ -117,31 +120,36 @@ export function SidebarItem({ icon, children, ...props }) {
|
|
|
117
120
|
useAutoScroll(active, ref);
|
|
118
121
|
return (_jsxs(Link, { ref: ref, "data-active": active, prefetch: prefetch, ...props, children: [icon ?? (props.external ? _jsx(ExternalLink, {}) : null), children] }));
|
|
119
122
|
}
|
|
120
|
-
export function SidebarFolder({ defaultOpen:
|
|
123
|
+
export function SidebarFolder({ defaultOpen: defaultOpenProp, collapsible = true, active = false, children, ...props }) {
|
|
121
124
|
const { defaultOpenLevel } = useSidebar();
|
|
122
125
|
const depth = useFolderDepth() + 1;
|
|
123
|
-
const defaultOpen =
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
const defaultOpen = collapsible === false ||
|
|
127
|
+
active ||
|
|
128
|
+
(defaultOpenProp ?? defaultOpenLevel >= depth);
|
|
126
129
|
const [open, setOpen] = useState(defaultOpen);
|
|
127
130
|
useOnChange(defaultOpen, (v) => {
|
|
128
131
|
if (v)
|
|
129
132
|
setOpen(v);
|
|
130
133
|
});
|
|
131
|
-
return (_jsx(Collapsible, { open: open, onOpenChange: setOpen, ...props, children: _jsx(FolderContext, { value: useMemo(() => ({ open, setOpen, depth }), [depth, open]), children:
|
|
134
|
+
return (_jsx(Collapsible, { open: open, onOpenChange: setOpen, disabled: !collapsible, ...props, children: _jsx(FolderContext, { value: useMemo(() => ({ open, setOpen, depth, collapsible }), [collapsible, depth, open]), children: children }) }));
|
|
132
135
|
}
|
|
133
|
-
export function SidebarFolderTrigger(props) {
|
|
134
|
-
const { open } = use(FolderContext);
|
|
135
|
-
|
|
136
|
+
export function SidebarFolderTrigger({ children, ...props }) {
|
|
137
|
+
const { open, collapsible } = use(FolderContext);
|
|
138
|
+
if (collapsible) {
|
|
139
|
+
return (_jsxs(CollapsibleTrigger, { ...props, children: [children, _jsx(ChevronDown, { "data-icon": true, className: cn('ms-auto transition-transform', !open && '-rotate-90') })] }));
|
|
140
|
+
}
|
|
141
|
+
return _jsx("div", { ...props, children: children });
|
|
136
142
|
}
|
|
137
|
-
export function SidebarFolderLink(props) {
|
|
143
|
+
export function SidebarFolderLink({ children, ...props }) {
|
|
138
144
|
const ref = useRef(null);
|
|
139
|
-
const { open, setOpen } = use(FolderContext);
|
|
145
|
+
const { open, setOpen, collapsible } = use(FolderContext);
|
|
140
146
|
const { prefetch } = useSidebar();
|
|
141
147
|
const pathname = usePathname();
|
|
142
148
|
const active = props.href !== undefined && isActive(props.href, pathname, false);
|
|
143
149
|
useAutoScroll(active, ref);
|
|
144
150
|
return (_jsxs(Link, { ref: ref, "data-active": active, onClick: (e) => {
|
|
151
|
+
if (!collapsible)
|
|
152
|
+
return;
|
|
145
153
|
if (e.target instanceof Element &&
|
|
146
154
|
e.target.matches('[data-icon], [data-icon] *')) {
|
|
147
155
|
setOpen(!open);
|
|
@@ -150,7 +158,7 @@ export function SidebarFolderLink(props) {
|
|
|
150
158
|
else {
|
|
151
159
|
setOpen(active ? !open : true);
|
|
152
160
|
}
|
|
153
|
-
}, prefetch: prefetch, ...props, children: [
|
|
161
|
+
}, prefetch: prefetch, ...props, children: [children, collapsible && (_jsx(ChevronDown, { "data-icon": true, className: cn('ms-auto transition-transform', !open && '-rotate-90') }))] }));
|
|
154
162
|
}
|
|
155
163
|
export function SidebarFolderContent(props) {
|
|
156
164
|
return _jsx(CollapsibleContent, { ...props, children: props.children });
|
|
@@ -4,7 +4,7 @@ import { useMemo, Fragment } from 'react';
|
|
|
4
4
|
export function createPageTreeRenderer({ SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarSeparator, SidebarItem, }) {
|
|
5
5
|
function PageTreeFolder({ item, children, }) {
|
|
6
6
|
const path = useTreePath();
|
|
7
|
-
return (_jsxs(SidebarFolder, {
|
|
7
|
+
return (_jsxs(SidebarFolder, { collapsible: item.collapsible, active: path.includes(item), defaultOpen: item.defaultOpen, children: [item.index ? (_jsxs(SidebarFolderLink, { href: item.index.url, external: item.index.external, children: [item.icon, item.name] })) : (_jsxs(SidebarFolderTrigger, { children: [item.icon, item.name] })), _jsx(SidebarFolderContent, { children: children })] }));
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Render sidebar items from page tree
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AA6BpD,eAAO,MACY,OAAO,+BACxB,aAAa,6BACb,sBAAsB,sCACtB,eAAe,+BACf,cAAc,4BACR,CAAC;AAET,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EAAE,OAAO,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,CAAC,2CA+DzB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,2CAelD;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,GAAG,CAAC,2CAerB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,2CAkBzC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,2CAmBlD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,2CAmB/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,2CAgBlD;AAED,eAAO,MAAM,eAAe,sIAO1B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;6CAM1B,CAAC"}
|
|
@@ -10,10 +10,11 @@ import { buttonVariants } from '../../components/ui/button.js';
|
|
|
10
10
|
import { SearchToggle } from '../../layouts/shared/search-toggle.js';
|
|
11
11
|
import { Sidebar as SidebarIcon } from '../../icons.js';
|
|
12
12
|
import { mergeRefs } from '../../utils/merge-refs.js';
|
|
13
|
-
const itemVariants = cva('relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere
|
|
13
|
+
const itemVariants = cva('relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
14
14
|
variants: {
|
|
15
15
|
variant: {
|
|
16
|
-
link: 'data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors',
|
|
16
|
+
link: 'transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors',
|
|
17
|
+
button: 'transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none',
|
|
17
18
|
},
|
|
18
19
|
highlight: {
|
|
19
20
|
true: "data-[active=true]:before:content-[''] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5",
|
|
@@ -58,8 +59,8 @@ export function SidebarItem({ className, style, children, ...props }) {
|
|
|
58
59
|
}, ...props, children: children }));
|
|
59
60
|
}
|
|
60
61
|
export function SidebarFolderTrigger({ className, style, ...props }) {
|
|
61
|
-
const depth = Base.
|
|
62
|
-
return (_jsx(Base.SidebarFolderTrigger, { className: cn(itemVariants(), 'w-full', className), style: {
|
|
62
|
+
const { depth, collapsible } = Base.useFolder();
|
|
63
|
+
return (_jsx(Base.SidebarFolderTrigger, { className: cn(itemVariants({ variant: collapsible ? 'button' : null }), 'w-full', className), style: {
|
|
63
64
|
paddingInlineStart: getItemOffset(depth - 1),
|
|
64
65
|
...style,
|
|
65
66
|
}, ...props, children: props.children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/notebook/sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/notebook/sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,OAAO,CAAC;AA2BzD,eAAO,MACY,OAAO,+BACxB,aAAa,6BACb,sBAAsB,sCACtB,eAAe,+BACf,cAAc,4BACR,CAAC;AAET,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EAAE,OAAO,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,CAAC,2CAgDzB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,2CAelD;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,GAAG,CAAC,2CAerB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,2CAkBzC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,2CAmBlD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,2CAmB/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,2CAgBlD;AACD,eAAO,MAAM,eAAe,sIAO1B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;6CAM1B,CAAC"}
|
|
@@ -8,10 +8,11 @@ import { LayoutContext } from './client.js';
|
|
|
8
8
|
import { createPageTreeRenderer } from '../../components/sidebar/page-tree.js';
|
|
9
9
|
import { createLinkItemRenderer } from '../../components/sidebar/link-item.js';
|
|
10
10
|
import { mergeRefs } from '../../utils/merge-refs.js';
|
|
11
|
-
const itemVariants = cva('relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere
|
|
11
|
+
const itemVariants = cva('relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
12
12
|
variants: {
|
|
13
13
|
variant: {
|
|
14
|
-
link: 'data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors',
|
|
14
|
+
link: 'transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors',
|
|
15
|
+
button: 'transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none',
|
|
15
16
|
},
|
|
16
17
|
highlight: {
|
|
17
18
|
true: "data-[active=true]:before:content-[''] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5",
|
|
@@ -55,8 +56,8 @@ export function SidebarItem({ className, style, children, ...props }) {
|
|
|
55
56
|
}, ...props, children: children }));
|
|
56
57
|
}
|
|
57
58
|
export function SidebarFolderTrigger({ className, style, ...props }) {
|
|
58
|
-
const depth = Base.
|
|
59
|
-
return (_jsx(Base.SidebarFolderTrigger, { className: cn(itemVariants(), 'w-full', className), style: {
|
|
59
|
+
const { depth, collapsible } = Base.useFolder();
|
|
60
|
+
return (_jsx(Base.SidebarFolderTrigger, { className: cn(itemVariants({ variant: collapsible ? 'button' : null }), 'w-full', className), style: {
|
|
60
61
|
paddingInlineStart: getItemOffset(depth - 1),
|
|
61
62
|
...style,
|
|
62
63
|
}, ...props, children: props.children }));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fumadocs-ui",
|
|
3
|
-
"version": "16.2.
|
|
3
|
+
"version": "16.2.3",
|
|
4
4
|
"description": "The React.js documentation framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"NextJs",
|
|
@@ -112,21 +112,21 @@
|
|
|
112
112
|
"react-medium-image-zoom": "^5.4.0",
|
|
113
113
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
114
114
|
"tailwind-merge": "^3.4.0",
|
|
115
|
-
"fumadocs-core": "16.2.
|
|
115
|
+
"fumadocs-core": "16.2.3"
|
|
116
116
|
},
|
|
117
117
|
"devDependencies": {
|
|
118
|
-
"@next/eslint-plugin-next": "16.0.
|
|
118
|
+
"@next/eslint-plugin-next": "16.0.7",
|
|
119
119
|
"@tailwindcss/cli": "^4.1.17",
|
|
120
120
|
"@types/lodash.merge": "^4.6.9",
|
|
121
121
|
"@types/node": "^24.10.1",
|
|
122
122
|
"@types/react": "^19.2.7",
|
|
123
123
|
"@types/react-dom": "^19.2.3",
|
|
124
|
-
"next": "16.0.
|
|
124
|
+
"next": "16.0.7",
|
|
125
125
|
"tailwindcss": "^4.1.17",
|
|
126
126
|
"tsc-alias": "^1.8.16",
|
|
127
127
|
"@fumadocs/cli": "1.1.0",
|
|
128
128
|
"eslint-config-custom": "0.0.0",
|
|
129
|
-
"fumadocs-core": "16.2.
|
|
129
|
+
"fumadocs-core": "16.2.3",
|
|
130
130
|
"tsconfig": "0.0.0"
|
|
131
131
|
},
|
|
132
132
|
"peerDependencies": {
|