fumadocs-ui 15.7.3 → 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/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 +44 -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();
|
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
|
}
|
|
@@ -1267,9 +1270,6 @@
|
|
|
1267
1270
|
.rounded-xl {
|
|
1268
1271
|
border-radius: var(--radius-xl);
|
|
1269
1272
|
}
|
|
1270
|
-
.rounded-bl-lg {
|
|
1271
|
-
border-bottom-left-radius: var(--radius-lg);
|
|
1272
|
-
}
|
|
1273
1273
|
.border {
|
|
1274
1274
|
border-style: var(--tw-border-style);
|
|
1275
1275
|
border-width: 1px;
|
|
@@ -1294,6 +1294,10 @@
|
|
|
1294
1294
|
border-bottom-style: var(--tw-border-style);
|
|
1295
1295
|
border-bottom-width: 1px;
|
|
1296
1296
|
}
|
|
1297
|
+
.border-b-2 {
|
|
1298
|
+
border-bottom-style: var(--tw-border-style);
|
|
1299
|
+
border-bottom-width: 2px;
|
|
1300
|
+
}
|
|
1297
1301
|
.border-l {
|
|
1298
1302
|
border-left-style: var(--tw-border-style);
|
|
1299
1303
|
border-left-width: 1px;
|
|
@@ -1421,9 +1425,6 @@
|
|
|
1421
1425
|
.px-\(--fd-layout-offset\) {
|
|
1422
1426
|
padding-inline: var(--fd-layout-offset);
|
|
1423
1427
|
}
|
|
1424
|
-
.px-1 {
|
|
1425
|
-
padding-inline: calc(var(--spacing) * 1);
|
|
1426
|
-
}
|
|
1427
1428
|
.px-1\.5 {
|
|
1428
1429
|
padding-inline: calc(var(--spacing) * 1.5);
|
|
1429
1430
|
}
|
|
@@ -1487,12 +1488,18 @@
|
|
|
1487
1488
|
.ps-6 {
|
|
1488
1489
|
padding-inline-start: calc(var(--spacing) * 6);
|
|
1489
1490
|
}
|
|
1491
|
+
.ps-7 {
|
|
1492
|
+
padding-inline-start: calc(var(--spacing) * 7);
|
|
1493
|
+
}
|
|
1490
1494
|
.ps-8 {
|
|
1491
1495
|
padding-inline-start: calc(var(--spacing) * 8);
|
|
1492
1496
|
}
|
|
1493
1497
|
.ps-\[calc\(var\(--fd-layout-offset\)\+var\(--fd-sidebar-width\)\)\] {
|
|
1494
1498
|
padding-inline-start: calc(var(--fd-layout-offset) + var(--fd-sidebar-width));
|
|
1495
1499
|
}
|
|
1500
|
+
.pe-\(--fd-toc-width\) {
|
|
1501
|
+
padding-inline-end: var(--fd-toc-width);
|
|
1502
|
+
}
|
|
1496
1503
|
.pe-2\.5 {
|
|
1497
1504
|
padding-inline-end: calc(var(--spacing) * 2.5);
|
|
1498
1505
|
}
|
|
@@ -1517,6 +1524,9 @@
|
|
|
1517
1524
|
.pt-14 {
|
|
1518
1525
|
padding-top: calc(var(--spacing) * 14);
|
|
1519
1526
|
}
|
|
1527
|
+
.pb-1\.5 {
|
|
1528
|
+
padding-bottom: calc(var(--spacing) * 1.5);
|
|
1529
|
+
}
|
|
1520
1530
|
.pb-2 {
|
|
1521
1531
|
padding-bottom: calc(var(--spacing) * 2);
|
|
1522
1532
|
}
|
|
@@ -1759,6 +1769,9 @@
|
|
|
1759
1769
|
.\[--fd-nav-height\:56px\] {
|
|
1760
1770
|
--fd-nav-height: 56px;
|
|
1761
1771
|
}
|
|
1772
|
+
.\[--fd-toc-width\:0px\] {
|
|
1773
|
+
--fd-toc-width: 0px;
|
|
1774
|
+
}
|
|
1762
1775
|
.\[scrollbar-width\:none\] {
|
|
1763
1776
|
scrollbar-width: none;
|
|
1764
1777
|
}
|
|
@@ -1872,11 +1885,6 @@
|
|
|
1872
1885
|
content: var(--tw-content);
|
|
1873
1886
|
}
|
|
1874
1887
|
}
|
|
1875
|
-
.first\:ms-1 {
|
|
1876
|
-
&:first-child {
|
|
1877
|
-
margin-inline-start: calc(var(--spacing) * 1);
|
|
1878
|
-
}
|
|
1879
|
-
}
|
|
1880
1888
|
.first\:mt-0 {
|
|
1881
1889
|
&:first-child {
|
|
1882
1890
|
margin-top: calc(var(--spacing) * 0);
|
|
@@ -1887,6 +1895,13 @@
|
|
|
1887
1895
|
padding-top: calc(var(--spacing) * 0);
|
|
1888
1896
|
}
|
|
1889
1897
|
}
|
|
1898
|
+
.\*\:first\:ms-2 {
|
|
1899
|
+
:is(& > *) {
|
|
1900
|
+
&:first-child {
|
|
1901
|
+
margin-inline-start: calc(var(--spacing) * 2);
|
|
1902
|
+
}
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1890
1905
|
.last\:pb-0 {
|
|
1891
1906
|
&:last-child {
|
|
1892
1907
|
padding-bottom: calc(var(--spacing) * 0);
|
|
@@ -2308,13 +2323,6 @@
|
|
|
2308
2323
|
padding: calc(var(--spacing) * 1.5);
|
|
2309
2324
|
}
|
|
2310
2325
|
}
|
|
2311
|
-
.max-md\:backdrop-blur-xs {
|
|
2312
|
-
@media (width < 48rem) {
|
|
2313
|
-
--tw-backdrop-blur: blur(var(--blur-xs));
|
|
2314
|
-
-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,);
|
|
2315
|
-
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,);
|
|
2316
|
-
}
|
|
2317
|
-
}
|
|
2318
2326
|
.max-sm\:mt-2 {
|
|
2319
2327
|
@media (width < 40rem) {
|
|
2320
2328
|
margin-top: calc(var(--spacing) * 2);
|
|
@@ -2590,8 +2598,8 @@
|
|
|
2590
2598
|
--color-fd-muted-foreground: hsl(0, 0%, 72%);
|
|
2591
2599
|
}
|
|
2592
2600
|
.shiki:not(.not-fumadocs-codeblock *) {
|
|
2593
|
-
--padding-left: calc(var(--spacing) *
|
|
2594
|
-
--padding-right: calc(var(--spacing) *
|
|
2601
|
+
--padding-left: calc(var(--spacing) * 4);
|
|
2602
|
+
--padding-right: calc(var(--spacing) * 4);
|
|
2595
2603
|
code span {
|
|
2596
2604
|
color: var(--shiki-light);
|
|
2597
2605
|
}
|
|
@@ -2627,7 +2635,7 @@
|
|
|
2627
2635
|
}
|
|
2628
2636
|
code .diff::before {
|
|
2629
2637
|
position: absolute;
|
|
2630
|
-
left: var(--spacing);
|
|
2638
|
+
left: calc(var(--spacing) * 1.5);
|
|
2631
2639
|
}
|
|
2632
2640
|
code .diff.remove {
|
|
2633
2641
|
opacity: 0.7;
|
|
@@ -2648,6 +2656,13 @@
|
|
|
2648
2656
|
}
|
|
2649
2657
|
code .highlighted {
|
|
2650
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
|
+
}
|
|
2651
2666
|
background-color: color-mix(in srgb, hsl(0, 0%, 9%) 10%, transparent);
|
|
2652
2667
|
@supports (color: color-mix(in lab, red, red)) {
|
|
2653
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": {
|