fumadocs-ui 15.7.2 → 15.7.4
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/css/shiki.css +6 -4
- package/dist/components/codeblock.d.ts.map +1 -1
- package/dist/components/codeblock.js +13 -12
- package/dist/components/dialog/search.js +1 -1
- package/dist/components/layout/sidebar.js +1 -1
- package/dist/icons.d.ts +1 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +21 -0
- package/dist/layouts/docs/page-client.d.ts +0 -4
- package/dist/layouts/docs/page-client.d.ts.map +1 -1
- package/dist/layouts/docs/page-client.js +5 -2
- package/dist/layouts/docs/page.d.ts +6 -2
- package/dist/layouts/docs/page.d.ts.map +1 -1
- package/dist/layouts/docs/page.js +5 -2
- package/dist/layouts/notebook/client.js +2 -2
- package/dist/layouts/notebook/index.js +2 -2
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +11 -9
- package/dist/style.css +47 -29
- package/package.json +3 -3
package/css/shiki.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.shiki:not(.not-fumadocs-codeblock *) {
|
|
2
|
-
--padding-left: calc(var(--spacing) *
|
|
3
|
-
--padding-right: calc(var(--spacing) *
|
|
2
|
+
--padding-left: calc(var(--spacing) * 4);
|
|
3
|
+
--padding-right: calc(var(--spacing) * 4);
|
|
4
4
|
|
|
5
5
|
code span {
|
|
6
6
|
color: var(--shiki-light);
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
code .diff::before {
|
|
46
46
|
position: absolute;
|
|
47
|
-
left: var(--spacing);
|
|
47
|
+
left: calc(var(--spacing) * 1.5);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
code .diff.remove {
|
|
@@ -70,7 +70,9 @@
|
|
|
70
70
|
|
|
71
71
|
code .highlighted {
|
|
72
72
|
--fd-counter-color: var(--color-fd-primary);
|
|
73
|
-
|
|
73
|
+
padding-left: calc(var(--padding-left) - 2px);
|
|
74
|
+
|
|
75
|
+
@apply border-l-2 border-fd-primary/50 bg-fd-primary/10;
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
code .highlighted-word {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeblock.d.ts","sourceRoot":"","sources":["../../src/components/codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC9D;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,aAAa,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5C;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,KAAK,SAAS,CAAC;CAC9E;AAOD,wBAAgB,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,2CAS/C;AAED,wBAAgB,SAAS,CAAC,EACxB,GAAG,EACH,KAAK,EACL,SAAS,EACT,cAAsB,EACtB,IAAI,EACJ,aAAkB,EAClB,QAAQ,EACR,OAEC,EACD,GAAG,KAAK,EACT,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"codeblock.d.ts","sourceRoot":"","sources":["../../src/components/codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC9D;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,aAAa,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5C;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,KAAK,SAAS,CAAC;CAC9E;AAOD,wBAAgB,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,2CAS/C;AAED,wBAAgB,SAAS,CAAC,EACxB,GAAG,EACH,KAAK,EACL,SAAS,EACT,cAAsB,EACtB,IAAI,EACJ,aAAkB,EAClB,QAAQ,EACR,OAEC,EACD,GAAG,KAAK,EACT,EAAE,cAAc,2CAiEhB;AAwCD,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,2CA2B3E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,QAAQ,CAAC,2CAoBvE;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,WAAW,CAAC,2CAapC;AAGD,eAAO,MAAM,YAAY,oBAAc,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Check,
|
|
3
|
+
import { Check, Clipboard } from '../icons.js';
|
|
4
4
|
import { createContext, useContext, useMemo, useRef, } from 'react';
|
|
5
5
|
import { cn } from '../utils/cn.js';
|
|
6
6
|
import { useCopyButton } from '../utils/use-copy-button.js';
|
|
@@ -12,18 +12,18 @@ export function Pre(props) {
|
|
|
12
12
|
return (_jsx("pre", { ...props, className: cn('min-w-full w-max *:flex *:flex-col', props.className), children: props.children }));
|
|
13
13
|
}
|
|
14
14
|
export function CodeBlock({ ref, title, allowCopy, keepBackground = false, icon, viewportProps = {}, children, Actions = (props) => (_jsx("div", { ...props, className: cn('empty:hidden', props.className) })), ...props }) {
|
|
15
|
-
const
|
|
15
|
+
const inTab = useContext(TabsContext) !== null;
|
|
16
16
|
const areaRef = useRef(null);
|
|
17
|
-
allowCopy ?? (allowCopy = !
|
|
18
|
-
|
|
19
|
-
return (_jsxs("figure", { ref: ref, dir: "ltr", ...props, className: cn(isTab ? [bg, 'rounded-lg'] : 'my-4 rounded-xl bg-fd-card p-1', 'shiki relative border shadow-sm outline-none not-prose overflow-hidden text-sm', props.className), children: [title ? (_jsxs("div", { className: cn('flex text-fd-muted-foreground items-center gap-2 ps-3 h-9.5', isTab && 'border-b'), children: [typeof icon === 'string' ? (_jsx("div", { className: "[&_svg]:size-3.5", dangerouslySetInnerHTML: {
|
|
17
|
+
allowCopy ?? (allowCopy = !inTab);
|
|
18
|
+
return (_jsxs("figure", { ref: ref, dir: "ltr", ...props, className: cn(inTab ? 'rounded-lg bg-fd-secondary' : 'my-4 rounded-xl bg-fd-card', keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)', 'shiki relative border shadow-md outline-none not-prose overflow-hidden text-sm', props.className), children: [title ? (_jsxs("div", { className: "flex text-fd-muted-foreground items-center gap-2 h-9.5 border-b px-4", children: [typeof icon === 'string' ? (_jsx("div", { className: "[&_svg]:size-3.5", dangerouslySetInnerHTML: {
|
|
20
19
|
__html: icon,
|
|
21
20
|
} })) : (icon), _jsx("figcaption", { className: "flex-1 truncate", children: title }), Actions({
|
|
21
|
+
className: '-me-2',
|
|
22
22
|
children: allowCopy && _jsx(CopyButton, { containerRef: areaRef }),
|
|
23
23
|
})] })) : (Actions({
|
|
24
|
-
className: 'absolute top-
|
|
24
|
+
className: 'absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground',
|
|
25
25
|
children: allowCopy && _jsx(CopyButton, { containerRef: areaRef }),
|
|
26
|
-
})), _jsx("div", { ref: areaRef, ...viewportProps, className: cn(
|
|
26
|
+
})), _jsx("div", { ref: areaRef, ...viewportProps, className: cn('text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container', viewportProps.className), style: {
|
|
27
27
|
// space for toolbar
|
|
28
28
|
'--padding-right': !title ? 'calc(var(--spacing) * 8)' : undefined,
|
|
29
29
|
counterSet: props['data-line-numbers']
|
|
@@ -44,23 +44,24 @@ function CopyButton({ className, containerRef, ...props }) {
|
|
|
44
44
|
void navigator.clipboard.writeText(clone.textContent ?? '');
|
|
45
45
|
});
|
|
46
46
|
return (_jsx("button", { type: "button", className: cn(buttonVariants({
|
|
47
|
-
className: '
|
|
48
|
-
|
|
47
|
+
className: 'hover:text-fd-accent-foreground',
|
|
48
|
+
size: 'icon-xs',
|
|
49
|
+
}), className), "aria-label": checked ? 'Copied Text' : 'Copy Text', onClick: onClick, ...props, children: checked ? _jsx(Check, {}) : _jsx(Clipboard, {}) }));
|
|
49
50
|
}
|
|
50
51
|
export function CodeBlockTabs({ ref, ...props }) {
|
|
51
52
|
const containerRef = useRef(null);
|
|
52
53
|
const nested = useContext(TabsContext) !== null;
|
|
53
|
-
return (_jsx(Tabs, { ref: mergeRefs(containerRef, ref), ...props, className: cn('bg-fd-card p-1 rounded-xl border overflow-hidden',
|
|
54
|
+
return (_jsx(Tabs, { ref: mergeRefs(containerRef, ref), ...props, className: cn('bg-fd-card p-1 rounded-xl border overflow-hidden', nested ? 'shadow-sm' : '-m-1 my-4', props.className), children: _jsx(TabsContext.Provider, { value: useMemo(() => ({
|
|
54
55
|
containerRef,
|
|
55
56
|
nested,
|
|
56
57
|
}), [nested]), children: props.children }) }));
|
|
57
58
|
}
|
|
58
59
|
export function CodeBlockTabsList(props) {
|
|
59
60
|
const { containerRef, nested } = useContext(TabsContext);
|
|
60
|
-
return (_jsxs(TabsList, { ...props, className: cn('flex flex-row overflow-x-auto
|
|
61
|
+
return (_jsxs(TabsList, { ...props, className: cn('flex flex-row *:first:ms-2 overflow-x-auto text-fd-muted-foreground', props.className), children: [props.children, !nested && (_jsx(CopyButton, { className: "sticky ms-auto right-2 bg-fd-card backdrop-blur-sm", containerRef: containerRef }))] }));
|
|
61
62
|
}
|
|
62
63
|
export function CodeBlockTabsTrigger({ children, ...props }) {
|
|
63
|
-
return (_jsxs(TabsTrigger, { ...props, className: cn('relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2
|
|
64
|
+
return (_jsxs(TabsTrigger, { ...props, className: cn('relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2 py-1.5 hover:text-fd-accent-foreground data-[state=active]:text-fd-primary [&_svg]:size-3.5', props.className), children: [_jsx("div", { className: "absolute inset-x-2 bottom-0 h-px group-data-[state=active]:bg-fd-primary" }), children] }));
|
|
64
65
|
}
|
|
65
66
|
// TODO: currently Vite RSC plugin has problem with adding `asChild` here, maybe revisit this in future
|
|
66
67
|
export const CodeBlockTab = TabsContent;
|
|
@@ -46,7 +46,7 @@ export function SearchDialogFooter(props) {
|
|
|
46
46
|
return (_jsx("div", { ...props, className: cn('bg-fd-secondary/50 p-3 empty:hidden', props.className) }));
|
|
47
47
|
}
|
|
48
48
|
export function SearchDialogOverlay(props) {
|
|
49
|
-
return (_jsx(DialogOverlay, { ...props, className: cn('fixed inset-0 z-50
|
|
49
|
+
return (_jsx(DialogOverlay, { ...props, className: cn('fixed inset-0 z-50 backdrop-blur-xs data-[state=open]:animate-fd-fade-in data-[state=closed]:animate-fd-fade-out', props.className) }));
|
|
50
50
|
}
|
|
51
51
|
export function SearchDialogContent({ children, ...props }) {
|
|
52
52
|
const { text } = useI18n();
|
|
@@ -91,7 +91,7 @@ export function SidebarFooter(props) {
|
|
|
91
91
|
return (_jsx("div", { ...props, className: cn('flex flex-col border-t px-4 py-3', props.className), children: props.children }));
|
|
92
92
|
}
|
|
93
93
|
export function SidebarViewport(props) {
|
|
94
|
-
return (_jsx(ScrollArea, { ...props, className: cn('h-full', props.className), children: _jsx(ScrollViewport, { className: "p-4", style: {
|
|
94
|
+
return (_jsx(ScrollArea, { ...props, className: cn('h-full', props.className), children: _jsx(ScrollViewport, { className: "p-4 overscroll-contain", style: {
|
|
95
95
|
'--sidebar-item-offset': 'calc(var(--spacing) * 2)',
|
|
96
96
|
maskImage: 'linear-gradient(to bottom, transparent, white 12px, white calc(100% - 12px), transparent)',
|
|
97
97
|
}, children: props.children }) }));
|
package/dist/icons.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export declare const Check: import("react").ForwardRefExoticComponent<Omit<Lucid
|
|
|
30
30
|
export declare const TriangleAlert: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
31
31
|
export declare const Info: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
32
32
|
export declare const Copy: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
33
|
+
export declare const Clipboard: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
33
34
|
export declare const FileText: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
34
35
|
export declare const Hash: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
35
36
|
export declare const Text: import("react").ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
package/dist/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,cAAc,EAA6B,MAAM,OAAO,CAAC;AAevE,KAAK,cAAc,GACf,QAAQ,GACR,SAAS,GACT,GAAG,GACH,MAAM,GACN,MAAM,GACN,SAAS,GACT,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,KAAK,CAAC;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAC9B,EAAE,CAAC;AA6BJ,eAAO,MAAM,WAAW,oHAEtB,CAAC;AAEH,eAAO,MAAM,SAAS,oHAOpB,CAAC;AAEH,eAAO,MAAM,OAAO,oHAMlB,CAAC;AAEH,eAAO,MAAM,cAAc,oHAGzB,CAAC;AAEH,eAAO,MAAM,MAAM,oHAGjB,CAAC;AAEH,eAAO,MAAM,YAAY,oHAUvB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAEf,CAAC;AAEH,eAAO,MAAM,GAAG,oHAUd,CAAC;AAEH,eAAO,MAAM,OAAO,oHASlB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAIf,CAAC;AAEH,eAAO,MAAM,CAAC,oHAGZ,CAAC;AAEH,eAAO,MAAM,YAAY,oHAEvB,CAAC;AAEH,eAAO,MAAM,WAAW,oHAGtB,CAAC;AAEH,eAAO,MAAM,OAAO,oHAIlB,CAAC;AAEH,eAAO,MAAM,KAAK,oHAEhB,CAAC;AAEH,eAAO,MAAM,aAAa,oHAUxB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAIf,CAAC;AAEH,eAAO,MAAM,IAAI,oHAoBf,CAAC;AAEH,eAAO,MAAM,QAAQ,oHAYnB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAKf,CAAC;AAEH,eAAO,MAAM,IAAI,oHAIf,CAAC;AAEH,eAAO,MAAM,IAAI,oHASf,CAAC;AAEH,eAAO,MAAM,MAAM,oHAQjB,CAAC;AAEH,eAAO,MAAM,UAAU,oHAQrB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAQf,CAAC;AAEH,eAAO,MAAM,IAAI,oHAef,CAAC;AAEH,eAAO,MAAM,IAAI,oHAef,CAAC;AAEH,eAAO,MAAM,YAAY,oHAEvB,CAAC;AAEH,eAAO,MAAM,WAAW,oHAEtB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAGf,CAAC;AAEH,eAAO,MAAM,MAAM,oHAMjB,CAAC;AAEH,eAAO,MAAM,SAAS,oHAEpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,cAAc,EAA6B,MAAM,OAAO,CAAC;AAevE,KAAK,cAAc,GACf,QAAQ,GACR,SAAS,GACT,GAAG,GACH,MAAM,GACN,MAAM,GACN,SAAS,GACT,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,KAAK,CAAC;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAC9B,EAAE,CAAC;AA6BJ,eAAO,MAAM,WAAW,oHAEtB,CAAC;AAEH,eAAO,MAAM,SAAS,oHAOpB,CAAC;AAEH,eAAO,MAAM,OAAO,oHAMlB,CAAC;AAEH,eAAO,MAAM,cAAc,oHAGzB,CAAC;AAEH,eAAO,MAAM,MAAM,oHAGjB,CAAC;AAEH,eAAO,MAAM,YAAY,oHAUvB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAEf,CAAC;AAEH,eAAO,MAAM,GAAG,oHAUd,CAAC;AAEH,eAAO,MAAM,OAAO,oHASlB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAIf,CAAC;AAEH,eAAO,MAAM,CAAC,oHAGZ,CAAC;AAEH,eAAO,MAAM,YAAY,oHAEvB,CAAC;AAEH,eAAO,MAAM,WAAW,oHAGtB,CAAC;AAEH,eAAO,MAAM,OAAO,oHAIlB,CAAC;AAEH,eAAO,MAAM,KAAK,oHAEhB,CAAC;AAEH,eAAO,MAAM,aAAa,oHAUxB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAIf,CAAC;AAEH,eAAO,MAAM,IAAI,oHAoBf,CAAC;AAEH,eAAO,MAAM,SAAS,oHAoBpB,CAAC;AAEH,eAAO,MAAM,QAAQ,oHAYnB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAKf,CAAC;AAEH,eAAO,MAAM,IAAI,oHAIf,CAAC;AAEH,eAAO,MAAM,IAAI,oHASf,CAAC;AAEH,eAAO,MAAM,MAAM,oHAQjB,CAAC;AAEH,eAAO,MAAM,UAAU,oHAQrB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAQf,CAAC;AAEH,eAAO,MAAM,IAAI,oHAef,CAAC;AAEH,eAAO,MAAM,IAAI,oHAef,CAAC;AAEH,eAAO,MAAM,YAAY,oHAEvB,CAAC;AAEH,eAAO,MAAM,WAAW,oHAEtB,CAAC;AAEH,eAAO,MAAM,IAAI,oHAGf,CAAC;AAEH,eAAO,MAAM,MAAM,oHAMjB,CAAC;AAEH,eAAO,MAAM,SAAS,oHAEpB,CAAC"}
|
package/dist/icons.js
CHANGED
|
@@ -146,6 +146,27 @@ export const Copy = createLucideIcon('copy', [
|
|
|
146
146
|
},
|
|
147
147
|
],
|
|
148
148
|
]);
|
|
149
|
+
export const Clipboard = createLucideIcon('clipboard', [
|
|
150
|
+
[
|
|
151
|
+
'rect',
|
|
152
|
+
{
|
|
153
|
+
width: '8',
|
|
154
|
+
height: '4',
|
|
155
|
+
x: '8',
|
|
156
|
+
y: '2',
|
|
157
|
+
rx: '1',
|
|
158
|
+
ry: '1',
|
|
159
|
+
key: '1',
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
[
|
|
163
|
+
'path',
|
|
164
|
+
{
|
|
165
|
+
d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2',
|
|
166
|
+
key: '2',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
]);
|
|
149
170
|
export const FileText = createLucideIcon('file-text', [
|
|
150
171
|
[
|
|
151
172
|
'path',
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { type ComponentProps } from 'react';
|
|
2
2
|
import type { PageTree } from 'fumadocs-core/server';
|
|
3
3
|
import { type BreadcrumbOptions } from 'fumadocs-core/breadcrumb';
|
|
4
|
-
import { type AnchorProviderProps } from 'fumadocs-core/toc';
|
|
5
4
|
export declare function PageTOCPopoverTrigger(props: ComponentProps<'button'>): import("react/jsx-runtime").JSX.Element;
|
|
6
5
|
export declare function PageTOCPopoverContent(props: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
7
6
|
export declare function PageTOCPopover(props: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export interface RootProps extends ComponentProps<'div'> {
|
|
9
|
-
toc: Omit<AnchorProviderProps, 'children'>;
|
|
10
|
-
}
|
|
11
7
|
export declare function PageLastUpdate({ date: value, ...props }: Omit<ComponentProps<'p'>, 'children'> & {
|
|
12
8
|
date: Date | string;
|
|
13
9
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-client.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/page-client.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"page-client.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/page-client.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAkBlC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,2CAoDpE;AA4DD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,2CAUjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,2CAuD1D;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EAAE,KAAK,EACX,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG;IAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,2CAiBjE;AAED,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;AAChE,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,KAAK,CAAC;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;CACH;AAyBD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAiC1D;AA8BD,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExE,wBAAgB,cAAc,CAAC,EAC7B,WAAmB,EACnB,gBAAgB,EAChB,WAAmB,EACnB,GAAG,KAAK,EACT,EAAE,eAAe,kDA6CjB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,2CAqBnD"}
|
|
@@ -146,9 +146,12 @@ export function PageBreadcrumb({ includeRoot = false, includeSeparator, includeP
|
|
|
146
146
|
}) }));
|
|
147
147
|
}
|
|
148
148
|
export function PageTOC(props) {
|
|
149
|
-
|
|
149
|
+
const { collapsed } = useSidebar();
|
|
150
|
+
return (_jsx("div", { id: "nd-toc", ...props, className: cn('fixed bottom-0 pb-2 pt-12 max-xl:hidden', props.className), style: {
|
|
150
151
|
...props.style,
|
|
151
152
|
top: 'calc(var(--fd-banner-height) + var(--fd-nav-height))',
|
|
152
|
-
|
|
153
|
+
insetInlineEnd: collapsed
|
|
154
|
+
? 'max(0px, calc(50vw - var(--fd-sidebar-width)/2 - var(--fd-page-width)/2))'
|
|
155
|
+
: 'max(var(--fd-layout-offset), calc(50vw - var(--fd-sidebar-width)/2 - var(--fd-page-width)/2))',
|
|
153
156
|
}, children: _jsx("div", { className: "flex h-full w-(--fd-toc-width) max-w-full flex-col pe-4", children: props.children }) }));
|
|
154
157
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ComponentProps } from 'react';
|
|
2
|
-
import { type BreadcrumbProps, type FooterProps, PageBreadcrumb, PageFooter, PageLastUpdate, PageTOC, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverTrigger
|
|
2
|
+
import { type BreadcrumbProps, type FooterProps, PageBreadcrumb, PageFooter, PageLastUpdate, PageTOC, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverTrigger } from './page-client.js';
|
|
3
|
+
import type { AnchorProviderProps } from 'fumadocs-core/toc';
|
|
3
4
|
/**
|
|
4
5
|
* Apply `prose` on div
|
|
5
6
|
*/
|
|
@@ -12,6 +13,9 @@ export declare function PageTOCPopoverItems({ variant, ...props }: ComponentProp
|
|
|
12
13
|
variant?: 'clerk' | 'normal';
|
|
13
14
|
}): import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export declare function PageArticle(props: ComponentProps<'article'>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export interface RootProps extends ComponentProps<'div'> {
|
|
17
|
+
toc?: Omit<AnchorProviderProps, 'children'> | false;
|
|
18
|
+
}
|
|
15
19
|
export declare function PageRoot({ toc, children, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export { PageBreadcrumb, PageFooter, PageLastUpdate, PageTOC, PageTOCPopover, PageTOCPopoverTrigger, PageTOCPopoverContent, type FooterProps, type BreadcrumbProps,
|
|
20
|
+
export { PageBreadcrumb, PageFooter, PageLastUpdate, PageTOC, PageTOCPopover, PageTOCPopoverTrigger, PageTOCPopoverContent, type FooterProps, type BreadcrumbProps, };
|
|
17
21
|
//# sourceMappingURL=page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,2CAMrD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,2CAavD;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,2CAM1D;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,2CAM1D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,2CAY3D;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,KAAK,CAAC;IACtD,GAAG,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;CACrD;AAED,wBAAgB,QAAQ,CAAC,EAAE,GAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,2CAgBtE;AAED,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,CAAC"}
|
|
@@ -23,7 +23,10 @@ export function PageTOCPopoverItems({ variant = 'normal', ...props }) {
|
|
|
23
23
|
export function PageArticle(props) {
|
|
24
24
|
return (_jsx("article", { ...props, className: cn('flex min-w-0 w-full flex-col gap-4 pt-8 px-4 md:px-6 md:mx-auto', props.className), children: props.children }));
|
|
25
25
|
}
|
|
26
|
-
export function PageRoot({ toc, children, ...props }) {
|
|
27
|
-
|
|
26
|
+
export function PageRoot({ toc = false, children, ...props }) {
|
|
27
|
+
const content = (_jsx("div", { id: "nd-page", ...props, className: cn('flex flex-1 w-full mx-auto max-w-(--fd-page-width) pt-(--fd-tocnav-height) pe-(--fd-toc-width)', props.className), children: children }));
|
|
28
|
+
if (toc)
|
|
29
|
+
return _jsx(TOCProvider, { ...toc, children: content });
|
|
30
|
+
return content;
|
|
28
31
|
}
|
|
29
32
|
export { PageBreadcrumb, PageFooter, PageLastUpdate, PageTOC, PageTOCPopover, PageTOCPopoverTrigger, PageTOCPopoverContent, };
|
|
@@ -44,8 +44,8 @@ export function LayoutTabs({ options, ...props }) {
|
|
|
44
44
|
return isActive(option.url, pathname, true);
|
|
45
45
|
});
|
|
46
46
|
}, [options, pathname]);
|
|
47
|
-
return (_jsx("div", { ...props, className: cn('flex flex-row items-
|
|
47
|
+
return (_jsx("div", { ...props, className: cn('flex flex-row items-end gap-6 overflow-auto', props.className), children: options.map((option) => (_jsx(LayoutTab, { selected: selected === option, option: option }, option.url))) }));
|
|
48
48
|
}
|
|
49
49
|
function LayoutTab({ option, selected = false, }) {
|
|
50
|
-
return (_jsx(Link, { className: cn('inline-flex border-b border-transparent transition-colors items-center
|
|
50
|
+
return (_jsx(Link, { className: cn('inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground', option.unlisted && !selected && 'hidden', selected && 'border-fd-primary text-fd-primary'), href: option.url, children: option.title }));
|
|
51
51
|
}
|
|
@@ -68,7 +68,7 @@ export function DocsLayout(props) {
|
|
|
68
68
|
function DocsNavbar({ links, tabs, searchToggle = {}, themeSwitch = {}, nav = {}, ...props }) {
|
|
69
69
|
const navMode = nav.mode ?? 'auto';
|
|
70
70
|
const sidebarCollapsible = props.sidebar?.collapsible ?? true;
|
|
71
|
-
return (_jsxs(Navbar, { mode: navMode, children: [_jsxs("div", { className: cn('flex border-b px-4 gap-2 flex-1', navMode === '
|
|
71
|
+
return (_jsxs(Navbar, { mode: navMode, children: [_jsxs("div", { className: cn('flex border-b px-4 gap-2 flex-1 md:px-6', navMode === 'top' && 'ps-7'), children: [_jsxs("div", { className: cn('items-center', navMode === 'top' && 'flex flex-1', navMode === 'auto' && [
|
|
72
72
|
'hidden max-md:flex',
|
|
73
73
|
sidebarCollapsible && 'has-data-[collapsed=true]:md:flex',
|
|
74
74
|
]), children: [sidebarCollapsible && navMode === 'auto' && (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
|
|
@@ -86,7 +86,7 @@ function DocsNavbar({ links, tabs, searchToggle = {}, themeSwitch = {}, nav = {}
|
|
|
86
86
|
(themeSwitch.component ?? (_jsx(ThemeToggle, { mode: themeSwitch.mode ?? 'light-dark-system' }))), sidebarCollapsible && navMode === 'top' && (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
|
|
87
87
|
color: 'secondary',
|
|
88
88
|
size: 'icon-sm',
|
|
89
|
-
}), 'text-fd-muted-foreground rounded-full'), children: _jsx(SidebarIcon, {}) }))] })] })] }), tabs.length > 0 && (_jsx(LayoutTabs, { className: cn('border-b h-10 max-lg:hidden', navMode === 'top'
|
|
89
|
+
}), 'text-fd-muted-foreground rounded-full -me-1.5'), children: _jsx(SidebarIcon, {}) }))] })] })] }), tabs.length > 0 && (_jsx(LayoutTabs, { className: cn('border-b px-6 h-10 max-lg:hidden', navMode === 'top' && 'ps-7'), options: tabs }))] }));
|
|
90
90
|
}
|
|
91
91
|
function NavbarLinkItem({ item, ...props }) {
|
|
92
92
|
if (item.type === 'menu') {
|
package/dist/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,WAAW,EAajB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,UAAU,mBACR,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,iBAAkB,SAAQ,eAAe;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,qBAAqB,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE9D;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAEpC,SAAS,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,KAAK,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;IACjE;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAE1E,wBAAgB,QAAQ,CAAC,EACvB,YAAY,EACZ,UAAU,EAAE,EACV,OAAO,EAAE,iBAAwB,EACjC,SAAS,EAAE,UAAU,EACrB,GAAG,eAAe,EACd,EACN,MAAW,EACX,UAAU,EACV,SAAS,EACT,IAAY,EACZ,qBAAqB,EAAE,EACrB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,UAAU,EACrB,GAAG,iBAAiB,EAChB,EACN,cAAc,EAAE,EACd,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,EACrB,GAAG,UAAU,EACT,EACN,GAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
|
package/dist/page.js
CHANGED
|
@@ -6,20 +6,22 @@ import { Edit } from './icons.js';
|
|
|
6
6
|
import { I18nLabel } from './contexts/i18n.js';
|
|
7
7
|
import { PageArticle, PageBreadcrumb, PageFooter, PageLastUpdate, PageRoot, PageTOC, PageTOCItems, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverItems, PageTOCPopoverTrigger, PageTOCTitle, } from './layouts/docs/page.js';
|
|
8
8
|
export function DocsPage({ editOnGithub, breadcrumb: { enabled: breadcrumbEnabled = true, component: breadcrumb, ...breadcrumbProps } = {}, footer = {}, lastUpdate, container, full = false, tableOfContentPopover: { enabled: tocPopoverEnabled, component: tocPopover, ...tocPopoverOptions } = {}, tableOfContent: { enabled: tocEnabled, component: tocReplace, ...tocOptions } = {}, toc = [], article, children, }) {
|
|
9
|
-
const isTocRequired = toc.length > 0 ||
|
|
10
|
-
tocOptions.footer !== undefined ||
|
|
11
|
-
tocOptions.header !== undefined;
|
|
12
9
|
// disable TOC on full mode, you can still enable it with `enabled` option.
|
|
13
|
-
tocEnabled ?? (tocEnabled = !full &&
|
|
10
|
+
tocEnabled ?? (tocEnabled = !full &&
|
|
11
|
+
(toc.length > 0 ||
|
|
12
|
+
tocOptions.footer !== undefined ||
|
|
13
|
+
tocOptions.header !== undefined));
|
|
14
14
|
tocPopoverEnabled ?? (tocPopoverEnabled = toc.length > 0 ||
|
|
15
15
|
tocPopoverOptions.header !== undefined ||
|
|
16
16
|
tocPopoverOptions.footer !== undefined);
|
|
17
|
-
return (_jsxs(PageRoot, { toc:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
return (_jsxs(PageRoot, { toc: tocEnabled || tocPopoverEnabled
|
|
18
|
+
? {
|
|
19
|
+
toc,
|
|
20
|
+
single: tocOptions.single,
|
|
21
|
+
}
|
|
22
|
+
: false, ...container, className: cn(!tocEnabled && '[--fd-toc-width:0px]', container?.className), children: [tocPopoverEnabled &&
|
|
21
23
|
(tocPopover ?? (_jsxs(PageTOCPopover, { children: [_jsx(PageTOCPopoverTrigger, {}), _jsxs(PageTOCPopoverContent, { children: [tocPopoverOptions.header, _jsx(PageTOCPopoverItems, { variant: tocPopoverOptions.style }), tocPopoverOptions.footer] })] }))), _jsxs(PageArticle, { ...article, children: [breadcrumbEnabled &&
|
|
22
|
-
(breadcrumb ?? _jsx(PageBreadcrumb, { ...breadcrumbProps })), children,
|
|
24
|
+
(breadcrumb ?? _jsx(PageBreadcrumb, { ...breadcrumbProps })), children, _jsxs("div", { className: "flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden", children: [editOnGithub && (_jsx(EditOnGitHub, { href: `https://github.com/${editOnGithub.owner}/${editOnGithub.repo}/blob/${editOnGithub.sha}/${editOnGithub.path.startsWith('/') ? editOnGithub.path.slice(1) : editOnGithub.path}` })), lastUpdate && _jsx(PageLastUpdate, { date: new Date(lastUpdate) })] }), footer.enabled !== false &&
|
|
23
25
|
(footer.component ?? _jsx(PageFooter, { items: footer.items }))] }), tocEnabled &&
|
|
24
26
|
(tocReplace ?? (_jsxs(PageTOC, { children: [tocOptions.header, _jsx(PageTOCTitle, {}), _jsx(PageTOCItems, { variant: tocOptions.style }), tocOptions.footer] })))] }));
|
|
25
27
|
}
|
package/dist/style.css
CHANGED
|
@@ -343,26 +343,23 @@
|
|
|
343
343
|
.top-0 {
|
|
344
344
|
top: calc(var(--spacing) * 0);
|
|
345
345
|
}
|
|
346
|
-
.top-1 {
|
|
347
|
-
top: calc(var(--spacing) * 1);
|
|
348
|
-
}
|
|
349
346
|
.top-1\.5 {
|
|
350
347
|
top: calc(var(--spacing) * 1.5);
|
|
351
348
|
}
|
|
352
349
|
.top-1\/2 {
|
|
353
350
|
top: calc(1/2 * 100%);
|
|
354
351
|
}
|
|
352
|
+
.top-2 {
|
|
353
|
+
top: calc(var(--spacing) * 2);
|
|
354
|
+
}
|
|
355
355
|
.top-4 {
|
|
356
356
|
top: calc(var(--spacing) * 4);
|
|
357
357
|
}
|
|
358
358
|
.top-14 {
|
|
359
359
|
top: calc(var(--spacing) * 14);
|
|
360
360
|
}
|
|
361
|
-
.right-
|
|
362
|
-
right: calc(var(--spacing) *
|
|
363
|
-
}
|
|
364
|
-
.right-1 {
|
|
365
|
-
right: calc(var(--spacing) * 1);
|
|
361
|
+
.right-2 {
|
|
362
|
+
right: calc(var(--spacing) * 2);
|
|
366
363
|
}
|
|
367
364
|
.bottom-\(--fd-sidebar-margin\) {
|
|
368
365
|
bottom: var(--fd-sidebar-margin);
|
|
@@ -418,6 +415,9 @@
|
|
|
418
415
|
max-width: 96rem;
|
|
419
416
|
}
|
|
420
417
|
}
|
|
418
|
+
.-m-1 {
|
|
419
|
+
margin: calc(var(--spacing) * -1);
|
|
420
|
+
}
|
|
421
421
|
.container {
|
|
422
422
|
margin-inline: auto;
|
|
423
423
|
padding-inline: 1rem;
|
|
@@ -470,6 +470,9 @@
|
|
|
470
470
|
.-me-1\.5 {
|
|
471
471
|
margin-inline-end: calc(var(--spacing) * -1.5);
|
|
472
472
|
}
|
|
473
|
+
.-me-2 {
|
|
474
|
+
margin-inline-end: calc(var(--spacing) * -2);
|
|
475
|
+
}
|
|
473
476
|
.me-2 {
|
|
474
477
|
margin-inline-end: calc(var(--spacing) * 2);
|
|
475
478
|
}
|
|
@@ -1243,6 +1246,9 @@
|
|
|
1243
1246
|
.overflow-y-auto {
|
|
1244
1247
|
overflow-y: auto;
|
|
1245
1248
|
}
|
|
1249
|
+
.overscroll-contain {
|
|
1250
|
+
overscroll-behavior: contain;
|
|
1251
|
+
}
|
|
1246
1252
|
.rounded-2xl {
|
|
1247
1253
|
border-radius: var(--radius-2xl);
|
|
1248
1254
|
}
|
|
@@ -1264,9 +1270,6 @@
|
|
|
1264
1270
|
.rounded-xl {
|
|
1265
1271
|
border-radius: var(--radius-xl);
|
|
1266
1272
|
}
|
|
1267
|
-
.rounded-bl-lg {
|
|
1268
|
-
border-bottom-left-radius: var(--radius-lg);
|
|
1269
|
-
}
|
|
1270
1273
|
.border {
|
|
1271
1274
|
border-style: var(--tw-border-style);
|
|
1272
1275
|
border-width: 1px;
|
|
@@ -1291,6 +1294,10 @@
|
|
|
1291
1294
|
border-bottom-style: var(--tw-border-style);
|
|
1292
1295
|
border-bottom-width: 1px;
|
|
1293
1296
|
}
|
|
1297
|
+
.border-b-2 {
|
|
1298
|
+
border-bottom-style: var(--tw-border-style);
|
|
1299
|
+
border-bottom-width: 2px;
|
|
1300
|
+
}
|
|
1294
1301
|
.border-l {
|
|
1295
1302
|
border-left-style: var(--tw-border-style);
|
|
1296
1303
|
border-left-width: 1px;
|
|
@@ -1418,9 +1425,6 @@
|
|
|
1418
1425
|
.px-\(--fd-layout-offset\) {
|
|
1419
1426
|
padding-inline: var(--fd-layout-offset);
|
|
1420
1427
|
}
|
|
1421
|
-
.px-1 {
|
|
1422
|
-
padding-inline: calc(var(--spacing) * 1);
|
|
1423
|
-
}
|
|
1424
1428
|
.px-1\.5 {
|
|
1425
1429
|
padding-inline: calc(var(--spacing) * 1.5);
|
|
1426
1430
|
}
|
|
@@ -1484,12 +1488,18 @@
|
|
|
1484
1488
|
.ps-6 {
|
|
1485
1489
|
padding-inline-start: calc(var(--spacing) * 6);
|
|
1486
1490
|
}
|
|
1491
|
+
.ps-7 {
|
|
1492
|
+
padding-inline-start: calc(var(--spacing) * 7);
|
|
1493
|
+
}
|
|
1487
1494
|
.ps-8 {
|
|
1488
1495
|
padding-inline-start: calc(var(--spacing) * 8);
|
|
1489
1496
|
}
|
|
1490
1497
|
.ps-\[calc\(var\(--fd-layout-offset\)\+var\(--fd-sidebar-width\)\)\] {
|
|
1491
1498
|
padding-inline-start: calc(var(--fd-layout-offset) + var(--fd-sidebar-width));
|
|
1492
1499
|
}
|
|
1500
|
+
.pe-\(--fd-toc-width\) {
|
|
1501
|
+
padding-inline-end: var(--fd-toc-width);
|
|
1502
|
+
}
|
|
1493
1503
|
.pe-2\.5 {
|
|
1494
1504
|
padding-inline-end: calc(var(--spacing) * 2.5);
|
|
1495
1505
|
}
|
|
@@ -1514,6 +1524,9 @@
|
|
|
1514
1524
|
.pt-14 {
|
|
1515
1525
|
padding-top: calc(var(--spacing) * 14);
|
|
1516
1526
|
}
|
|
1527
|
+
.pb-1\.5 {
|
|
1528
|
+
padding-bottom: calc(var(--spacing) * 1.5);
|
|
1529
|
+
}
|
|
1517
1530
|
.pb-2 {
|
|
1518
1531
|
padding-bottom: calc(var(--spacing) * 2);
|
|
1519
1532
|
}
|
|
@@ -1756,6 +1769,9 @@
|
|
|
1756
1769
|
.\[--fd-nav-height\:56px\] {
|
|
1757
1770
|
--fd-nav-height: 56px;
|
|
1758
1771
|
}
|
|
1772
|
+
.\[--fd-toc-width\:0px\] {
|
|
1773
|
+
--fd-toc-width: 0px;
|
|
1774
|
+
}
|
|
1759
1775
|
.\[scrollbar-width\:none\] {
|
|
1760
1776
|
scrollbar-width: none;
|
|
1761
1777
|
}
|
|
@@ -1869,11 +1885,6 @@
|
|
|
1869
1885
|
content: var(--tw-content);
|
|
1870
1886
|
}
|
|
1871
1887
|
}
|
|
1872
|
-
.first\:ms-1 {
|
|
1873
|
-
&:first-child {
|
|
1874
|
-
margin-inline-start: calc(var(--spacing) * 1);
|
|
1875
|
-
}
|
|
1876
|
-
}
|
|
1877
1888
|
.first\:mt-0 {
|
|
1878
1889
|
&:first-child {
|
|
1879
1890
|
margin-top: calc(var(--spacing) * 0);
|
|
@@ -1884,6 +1895,13 @@
|
|
|
1884
1895
|
padding-top: calc(var(--spacing) * 0);
|
|
1885
1896
|
}
|
|
1886
1897
|
}
|
|
1898
|
+
.\*\:first\:ms-2 {
|
|
1899
|
+
:is(& > *) {
|
|
1900
|
+
&:first-child {
|
|
1901
|
+
margin-inline-start: calc(var(--spacing) * 2);
|
|
1902
|
+
}
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1887
1905
|
.last\:pb-0 {
|
|
1888
1906
|
&:last-child {
|
|
1889
1907
|
padding-bottom: calc(var(--spacing) * 0);
|
|
@@ -2305,13 +2323,6 @@
|
|
|
2305
2323
|
padding: calc(var(--spacing) * 1.5);
|
|
2306
2324
|
}
|
|
2307
2325
|
}
|
|
2308
|
-
.max-md\:backdrop-blur-xs {
|
|
2309
|
-
@media (width < 48rem) {
|
|
2310
|
-
--tw-backdrop-blur: blur(var(--blur-xs));
|
|
2311
|
-
-webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
|
|
2312
|
-
backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
|
|
2313
|
-
}
|
|
2314
|
-
}
|
|
2315
2326
|
.max-sm\:mt-2 {
|
|
2316
2327
|
@media (width < 40rem) {
|
|
2317
2328
|
margin-top: calc(var(--spacing) * 2);
|
|
@@ -2587,8 +2598,8 @@
|
|
|
2587
2598
|
--color-fd-muted-foreground: hsl(0, 0%, 72%);
|
|
2588
2599
|
}
|
|
2589
2600
|
.shiki:not(.not-fumadocs-codeblock *) {
|
|
2590
|
-
--padding-left: calc(var(--spacing) *
|
|
2591
|
-
--padding-right: calc(var(--spacing) *
|
|
2601
|
+
--padding-left: calc(var(--spacing) * 4);
|
|
2602
|
+
--padding-right: calc(var(--spacing) * 4);
|
|
2592
2603
|
code span {
|
|
2593
2604
|
color: var(--shiki-light);
|
|
2594
2605
|
}
|
|
@@ -2624,7 +2635,7 @@
|
|
|
2624
2635
|
}
|
|
2625
2636
|
code .diff::before {
|
|
2626
2637
|
position: absolute;
|
|
2627
|
-
left: var(--spacing);
|
|
2638
|
+
left: calc(var(--spacing) * 1.5);
|
|
2628
2639
|
}
|
|
2629
2640
|
code .diff.remove {
|
|
2630
2641
|
opacity: 0.7;
|
|
@@ -2645,6 +2656,13 @@
|
|
|
2645
2656
|
}
|
|
2646
2657
|
code .highlighted {
|
|
2647
2658
|
--fd-counter-color: var(--color-fd-primary);
|
|
2659
|
+
padding-left: calc(var(--padding-left) - 2px);
|
|
2660
|
+
border-left-style: var(--tw-border-style);
|
|
2661
|
+
border-left-width: 2px;
|
|
2662
|
+
border-color: color-mix(in srgb, hsl(0, 0%, 9%) 50%, transparent);
|
|
2663
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2664
|
+
border-color: color-mix(in oklab, var(--color-fd-primary) 50%, transparent);
|
|
2665
|
+
}
|
|
2648
2666
|
background-color: color-mix(in srgb, hsl(0, 0%, 9%) 10%, transparent);
|
|
2649
2667
|
@supports (color: color-mix(in lab, red, red)) {
|
|
2650
2668
|
background-color: color-mix(in oklab, var(--color-fd-primary) 10%, transparent);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fumadocs-ui",
|
|
3
|
-
"version": "15.7.
|
|
3
|
+
"version": "15.7.4",
|
|
4
4
|
"description": "The framework for building a documentation website in Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"NextJs",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
"react-medium-image-zoom": "^5.3.0",
|
|
122
122
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
123
123
|
"tailwind-merge": "^3.3.1",
|
|
124
|
-
"fumadocs-core": "15.7.
|
|
124
|
+
"fumadocs-core": "15.7.4"
|
|
125
125
|
},
|
|
126
126
|
"devDependencies": {
|
|
127
127
|
"@next/eslint-plugin-next": "^15.5.0",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"tsc-alias": "^1.8.16",
|
|
135
135
|
"@fumadocs/cli": "1.0.0",
|
|
136
136
|
"eslint-config-custom": "0.0.0",
|
|
137
|
-
"fumadocs-core": "15.7.
|
|
137
|
+
"fumadocs-core": "15.7.4",
|
|
138
138
|
"tsconfig": "0.0.0"
|
|
139
139
|
},
|
|
140
140
|
"peerDependencies": {
|