fumadocs-ui 16.4.1 → 16.4.2
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/preset.css +2 -4
- package/dist/_virtual/rolldown_runtime.js +36 -0
- package/dist/components/accordion.d.ts +24 -7
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/accordion.js +65 -38
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/banner.d.ts +33 -22
- package/dist/components/banner.d.ts.map +1 -1
- package/dist/components/banner.js +63 -47
- package/dist/components/banner.js.map +1 -0
- package/dist/components/callout.d.ts +41 -17
- package/dist/components/callout.d.ts.map +1 -1
- package/dist/components/callout.js +57 -28
- package/dist/components/callout.js.map +1 -0
- package/dist/components/card.d.ts +19 -9
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/card.js +39 -8
- package/dist/components/card.js.map +1 -0
- package/dist/components/codeblock.d.ts +61 -40
- package/dist/components/codeblock.d.ts.map +1 -1
- package/dist/components/codeblock.js +116 -58
- package/dist/components/codeblock.js.map +1 -0
- package/dist/components/dialog/search-algolia.d.ts +37 -23
- package/dist/components/dialog/search-algolia.d.ts.map +1 -1
- package/dist/components/dialog/search-algolia.js +64 -31
- package/dist/components/dialog/search-algolia.js.map +1 -0
- package/dist/components/dialog/search-default.d.ts +42 -27
- package/dist/components/dialog/search-default.d.ts.map +1 -1
- package/dist/components/dialog/search-default.js +64 -38
- package/dist/components/dialog/search-default.js.map +1 -0
- package/dist/components/dialog/search-orama.d.ts +41 -25
- package/dist/components/dialog/search-orama.d.ts.map +1 -1
- package/dist/components/dialog/search-orama.js +68 -35
- package/dist/components/dialog/search-orama.js.map +1 -0
- package/dist/components/dialog/search.d.ts +103 -64
- package/dist/components/dialog/search.d.ts.map +1 -1
- package/dist/components/dialog/search.js +264 -185
- package/dist/components/dialog/search.js.map +1 -0
- package/dist/components/dynamic-codeblock.d.ts +30 -19
- package/dist/components/dynamic-codeblock.d.ts.map +1 -1
- package/dist/components/dynamic-codeblock.js +60 -27
- package/dist/components/dynamic-codeblock.js.map +1 -0
- package/dist/components/files.d.ts +32 -16
- package/dist/components/files.d.ts.map +1 -1
- package/dist/components/files.js +40 -14
- package/dist/components/files.js.map +1 -0
- package/dist/components/github-info.d.ts +18 -7
- package/dist/components/github-info.d.ts.map +1 -1
- package/dist/components/github-info.js +63 -48
- package/dist/components/github-info.js.map +1 -0
- package/dist/components/heading.d.ts +11 -4
- package/dist/components/heading.d.ts.map +1 -1
- package/dist/components/heading.js +28 -8
- package/dist/components/heading.js.map +1 -0
- package/dist/components/image-zoom-CtfZieBH.css +80 -0
- package/dist/components/image-zoom-CtfZieBH.css.map +1 -0
- package/dist/components/image-zoom.d.ts +23 -14
- package/dist/components/image-zoom.d.ts.map +1 -1
- package/dist/components/image-zoom.js +32 -19
- package/dist/components/image-zoom.js.map +1 -0
- package/dist/components/image-zoom2.js +1 -0
- package/dist/components/inline-toc.d.ts +14 -6
- package/dist/components/inline-toc.d.ts.map +1 -1
- package/dist/components/inline-toc.js +28 -8
- package/dist/components/inline-toc.js.map +1 -0
- package/dist/components/sidebar/base.d.ts +102 -65
- package/dist/components/sidebar/base.d.ts.map +1 -1
- package/dist/components/sidebar/base.js +256 -180
- package/dist/components/sidebar/base.js.map +1 -0
- package/dist/components/sidebar/link-item.d.ts +23 -10
- package/dist/components/sidebar/link-item.d.ts.map +1 -1
- package/dist/components/sidebar/link-item.js +32 -12
- package/dist/components/sidebar/link-item.js.map +1 -0
- package/dist/components/sidebar/page-tree.d.ts +28 -17
- package/dist/components/sidebar/page-tree.d.ts.map +1 -1
- package/dist/components/sidebar/page-tree.js +57 -33
- package/dist/components/sidebar/page-tree.js.map +1 -0
- package/dist/components/sidebar/tabs/dropdown.d.ts +18 -9
- package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -1
- package/dist/components/sidebar/tabs/dropdown.js +75 -31
- package/dist/components/sidebar/tabs/dropdown.js.map +1 -0
- package/dist/components/sidebar/tabs/index.d.ts +24 -18
- package/dist/components/sidebar/tabs/index.d.ts.map +1 -1
- package/dist/components/sidebar/tabs/index.js +45 -45
- package/dist/components/sidebar/tabs/index.js.map +1 -0
- package/dist/components/steps.d.ts +16 -7
- package/dist/components/steps.d.ts.map +1 -1
- package/dist/components/steps.js +17 -5
- package/dist/components/steps.js.map +1 -0
- package/dist/components/tabs.d.ts +49 -28
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +88 -51
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/toc/clerk.d.ts +1 -2
- package/dist/components/toc/clerk.js +12 -1
- package/dist/components/toc/clerk.js.map +1 -0
- package/dist/components/toc/default.d.ts +1 -2
- package/dist/components/toc/default.js +12 -1
- package/dist/components/toc/default.js.map +1 -0
- package/dist/components/toc/index.d.ts +1 -2
- package/dist/components/toc/index.js +12 -1
- package/dist/components/toc/index.js.map +1 -0
- package/dist/components/type-table.d.ts +36 -29
- package/dist/components/type-table.d.ts.map +1 -1
- package/dist/components/type-table.js +106 -25
- package/dist/components/type-table.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +31 -7
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +40 -14
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/button.d.ts +12 -7
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +21 -18
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +12 -8
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +21 -11
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +8 -5
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +36 -9
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/popover.d.ts +6 -3
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +19 -6
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +7 -4
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +33 -7
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +37 -19
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +75 -73
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/contexts/i18n.d.ts +1 -2
- package/dist/contexts/i18n.js +12 -1
- package/dist/contexts/i18n.js.map +1 -0
- package/dist/contexts/search.d.ts +7 -1
- package/dist/contexts/search.d.ts.map +1 -1
- package/dist/contexts/search.js +12 -1
- package/dist/contexts/search.js.map +1 -0
- package/dist/contexts/tree.d.ts +1 -2
- package/dist/contexts/tree.js +12 -1
- package/dist/contexts/tree.js.map +1 -0
- package/dist/i18n.d.ts +1 -2
- package/dist/i18n.js +3 -1
- package/dist/layouts/docs/client.d.ts +30 -13
- package/dist/layouts/docs/client.d.ts.map +1 -1
- package/dist/layouts/docs/client.js +61 -34
- package/dist/layouts/docs/client.js.map +1 -0
- package/dist/layouts/docs/index.d.ts +57 -33
- package/dist/layouts/docs/index.d.ts.map +1 -1
- package/dist/layouts/docs/index.js +178 -68
- package/dist/layouts/docs/index.js.map +1 -0
- package/dist/layouts/docs/page/client.d.ts +43 -21
- package/dist/layouts/docs/page/client.d.ts.map +1 -1
- package/dist/layouts/docs/page/client.js +213 -105
- package/dist/layouts/docs/page/client.js.map +1 -0
- package/dist/layouts/docs/page/index.d.ts +82 -46
- package/dist/layouts/docs/page/index.d.ts.map +1 -1
- package/dist/layouts/docs/page/index.js +98 -45
- package/dist/layouts/docs/page/index.js.map +1 -0
- package/dist/layouts/docs/sidebar.d.ts +57 -16
- package/dist/layouts/docs/sidebar.d.ts.map +1 -1
- package/dist/layouts/docs/sidebar.js +135 -82
- package/dist/layouts/docs/sidebar.js.map +1 -0
- package/dist/layouts/home/client.d.ts +18 -5
- package/dist/layouts/home/client.d.ts.map +1 -1
- package/dist/layouts/home/client.js +252 -103
- package/dist/layouts/home/client.js.map +1 -0
- package/dist/layouts/home/index.d.ts +15 -10
- package/dist/layouts/home/index.d.ts.map +1 -1
- package/dist/layouts/home/index.js +24 -7
- package/dist/layouts/home/index.js.map +1 -0
- package/dist/layouts/home/navbar.d.ts +13 -6
- package/dist/layouts/home/navbar.d.ts.map +1 -1
- package/dist/layouts/home/navbar.js +34 -12
- package/dist/layouts/home/navbar.js.map +1 -0
- package/dist/layouts/notebook/client.d.ts +44 -20
- package/dist/layouts/notebook/client.d.ts.map +1 -1
- package/dist/layouts/notebook/client.js +148 -93
- package/dist/layouts/notebook/client.js.map +1 -0
- package/dist/layouts/notebook/index.d.ts +34 -30
- package/dist/layouts/notebook/index.d.ts.map +1 -1
- package/dist/layouts/notebook/index.js +216 -90
- package/dist/layouts/notebook/index.js.map +1 -0
- package/dist/layouts/notebook/page/client.d.ts +43 -21
- package/dist/layouts/notebook/page/client.d.ts.map +1 -1
- package/dist/layouts/notebook/page/client.js +213 -105
- package/dist/layouts/notebook/page/client.js.map +1 -0
- package/dist/layouts/notebook/page/index.d.ts +82 -46
- package/dist/layouts/notebook/page/index.d.ts.map +1 -1
- package/dist/layouts/notebook/page/index.js +98 -45
- package/dist/layouts/notebook/page/index.js.map +1 -0
- package/dist/layouts/notebook/sidebar.d.ts +62 -20
- package/dist/layouts/notebook/sidebar.d.ts.map +1 -1
- package/dist/layouts/notebook/sidebar.js +130 -88
- package/dist/layouts/notebook/sidebar.js.map +1 -0
- package/dist/layouts/shared/index.d.ts +62 -50
- package/dist/layouts/shared/index.d.ts.map +1 -1
- package/dist/layouts/shared/index.js +36 -20
- package/dist/layouts/shared/index.js.map +1 -0
- package/dist/layouts/shared/language-toggle.d.ts +9 -4
- package/dist/layouts/shared/language-toggle.d.ts.map +1 -1
- package/dist/layouts/shared/language-toggle.js +44 -21
- package/dist/layouts/shared/language-toggle.js.map +1 -0
- package/dist/layouts/shared/search-toggle.d.ts +20 -8
- package/dist/layouts/shared/search-toggle.d.ts.map +1 -1
- package/dist/layouts/shared/search-toggle.js +53 -24
- package/dist/layouts/shared/search-toggle.js.map +1 -0
- package/dist/layouts/shared/theme-toggle.d.ts +13 -4
- package/dist/layouts/shared/theme-toggle.d.ts.map +1 -1
- package/dist/layouts/shared/theme-toggle.js +58 -34
- package/dist/layouts/shared/theme-toggle.js.map +1 -0
- package/dist/mdx.d.ts +34 -29
- package/dist/mdx.d.ts.map +1 -1
- package/dist/mdx.js +68 -34
- package/dist/mdx.js.map +1 -0
- package/dist/mdx.server.d.ts +9 -5
- package/dist/mdx.server.d.ts.map +1 -1
- package/dist/mdx.server.js +21 -13
- package/dist/mdx.server.js.map +1 -0
- package/dist/og.d.ts +1 -2
- package/dist/og.js +3 -1
- package/dist/page.d.ts +30 -20
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +34 -18
- package/dist/page.js.map +1 -0
- package/dist/provider/base.d.ts +43 -33
- package/dist/provider/base.d.ts.map +1 -1
- package/dist/provider/base.js +37 -17
- package/dist/provider/base.js.map +1 -0
- package/dist/provider/next.d.ts +20 -12
- package/dist/provider/next.d.ts.map +1 -1
- package/dist/provider/next.js +19 -5
- package/dist/provider/next.js.map +1 -0
- package/dist/provider/react-router.d.ts +20 -12
- package/dist/provider/react-router.d.ts.map +1 -1
- package/dist/provider/react-router.js +19 -5
- package/dist/provider/react-router.js.map +1 -0
- package/dist/provider/tanstack.d.ts +20 -12
- package/dist/provider/tanstack.d.ts.map +1 -1
- package/dist/provider/tanstack.js +19 -5
- package/dist/provider/tanstack.js.map +1 -0
- package/dist/provider/waku.d.ts +20 -12
- package/dist/provider/waku.d.ts.map +1 -1
- package/dist/provider/waku.js +19 -5
- package/dist/provider/waku.js.map +1 -0
- package/dist/style.css +11 -13
- package/dist/utils/use-copy-button.d.ts +1 -2
- package/dist/utils/use-copy-button.js +3 -1
- package/dist/utils/use-footer-items.d.ts +1 -2
- package/dist/utils/use-footer-items.js +3 -1
- package/dist/utils/use-is-scroll-top.d.ts +1 -2
- package/dist/utils/use-is-scroll-top.js +3 -1
- package/package.json +51 -52
- package/dist/components/toc/clerk.d.ts.map +0 -1
- package/dist/components/toc/default.d.ts.map +0 -1
- package/dist/components/toc/index.d.ts.map +0 -1
- package/dist/contexts/i18n.d.ts.map +0 -1
- package/dist/contexts/tree.d.ts.map +0 -1
- package/dist/i18n.d.ts.map +0 -1
- package/dist/og.d.ts.map +0 -1
- package/dist/utils/use-copy-button.d.ts.map +0 -1
- package/dist/utils/use-footer-items.d.ts.map +0 -1
- package/dist/utils/use-is-scroll-top.d.ts.map +0 -1
|
@@ -1,79 +1,81 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { createContext, use, useEffectEvent, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
5
|
+
import * as Primitive from "@radix-ui/react-tabs";
|
|
6
|
+
import { mergeRefs } from "@fumadocs/ui/merge-refs";
|
|
7
|
+
|
|
8
|
+
//#region src/components/ui/tabs.tsx
|
|
9
|
+
const listeners = /* @__PURE__ */ new Map();
|
|
7
10
|
const TabsContext = createContext(null);
|
|
8
11
|
function useTabContext() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return ctx;
|
|
12
|
+
const ctx = use(TabsContext);
|
|
13
|
+
if (!ctx) throw new Error("You must wrap your component in <Tabs>");
|
|
14
|
+
return ctx;
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
localStorage.setItem(groupId, v);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
setValue(v);
|
|
70
|
-
}
|
|
71
|
-
}, ...props, children: _jsx(TabsContext, { value: useMemo(() => ({ valueToIdMap }), [valueToIdMap]), children: props.children }) }));
|
|
16
|
+
const TabsList = Primitive.TabsList;
|
|
17
|
+
const TabsTrigger = Primitive.TabsTrigger;
|
|
18
|
+
function Tabs({ ref, groupId, persist = false, updateAnchor = false, defaultValue, value: _value, onValueChange: _onValueChange, ...props }) {
|
|
19
|
+
const tabsRef = useRef(null);
|
|
20
|
+
const valueToIdMap = useMemo(() => /* @__PURE__ */ new Map(), []);
|
|
21
|
+
const [value, setValue] = _value === void 0 ? useState(defaultValue) : [_value, useEffectEvent((v) => _onValueChange?.(v))];
|
|
22
|
+
useLayoutEffect(() => {
|
|
23
|
+
if (!groupId) return;
|
|
24
|
+
let previous = sessionStorage.getItem(groupId);
|
|
25
|
+
if (persist) previous ??= localStorage.getItem(groupId);
|
|
26
|
+
if (previous) setValue(previous);
|
|
27
|
+
const groupListeners = listeners.get(groupId) ?? /* @__PURE__ */ new Set();
|
|
28
|
+
groupListeners.add(setValue);
|
|
29
|
+
listeners.set(groupId, groupListeners);
|
|
30
|
+
return () => {
|
|
31
|
+
groupListeners.delete(setValue);
|
|
32
|
+
};
|
|
33
|
+
}, [
|
|
34
|
+
groupId,
|
|
35
|
+
persist,
|
|
36
|
+
setValue
|
|
37
|
+
]);
|
|
38
|
+
useLayoutEffect(() => {
|
|
39
|
+
const hash = window.location.hash.slice(1);
|
|
40
|
+
if (!hash) return;
|
|
41
|
+
for (const [value$1, id] of valueToIdMap.entries()) if (id === hash) {
|
|
42
|
+
setValue(value$1);
|
|
43
|
+
tabsRef.current?.scrollIntoView();
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}, [setValue, valueToIdMap]);
|
|
47
|
+
return /* @__PURE__ */ jsx(Primitive.Tabs, {
|
|
48
|
+
ref: mergeRefs(ref, tabsRef),
|
|
49
|
+
value,
|
|
50
|
+
onValueChange: (v) => {
|
|
51
|
+
if (updateAnchor) {
|
|
52
|
+
const id = valueToIdMap.get(v);
|
|
53
|
+
if (id) window.history.replaceState(null, "", `#${id}`);
|
|
54
|
+
}
|
|
55
|
+
if (groupId) {
|
|
56
|
+
const groupListeners = listeners.get(groupId);
|
|
57
|
+
if (groupListeners) for (const listener of groupListeners) listener(v);
|
|
58
|
+
sessionStorage.setItem(groupId, v);
|
|
59
|
+
if (persist) localStorage.setItem(groupId, v);
|
|
60
|
+
} else setValue(v);
|
|
61
|
+
},
|
|
62
|
+
...props,
|
|
63
|
+
children: /* @__PURE__ */ jsx(TabsContext, {
|
|
64
|
+
value: useMemo(() => ({ valueToIdMap }), [valueToIdMap]),
|
|
65
|
+
children: props.children
|
|
66
|
+
})
|
|
67
|
+
});
|
|
72
68
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
69
|
+
function TabsContent({ value, ...props }) {
|
|
70
|
+
const { valueToIdMap } = useTabContext();
|
|
71
|
+
if (props.id) valueToIdMap.set(value, props.id);
|
|
72
|
+
return /* @__PURE__ */ jsx(Primitive.TabsContent, {
|
|
73
|
+
value,
|
|
74
|
+
...props,
|
|
75
|
+
children: props.children
|
|
76
|
+
});
|
|
79
77
|
}
|
|
78
|
+
|
|
79
|
+
//#endregion
|
|
80
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger };
|
|
81
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","names":["value"],"sources":["../../../src/components/ui/tabs.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ComponentProps,\n createContext,\n use,\n useEffectEvent,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport * as Primitive from '@radix-ui/react-tabs';\nimport { mergeRefs } from '@fumadocs/ui/merge-refs';\n\ntype ChangeListener = (v: string) => void;\nconst listeners = new Map<string, Set<ChangeListener>>();\n\nexport interface TabsProps extends ComponentProps<typeof Primitive.Tabs> {\n /**\n * Identifier for Sharing value of tabs\n */\n groupId?: string;\n\n /**\n * Enable persistent\n */\n persist?: boolean;\n\n /**\n * If true, updates the URL hash based on the tab's id\n */\n updateAnchor?: boolean;\n}\n\nconst TabsContext = createContext<{\n valueToIdMap: Map<string, string>;\n} | null>(null);\n\nfunction useTabContext() {\n const ctx = use(TabsContext);\n if (!ctx) throw new Error('You must wrap your component in <Tabs>');\n return ctx;\n}\n\nexport const TabsList = Primitive.TabsList;\n\nexport const TabsTrigger = Primitive.TabsTrigger;\n\nexport function Tabs({\n ref,\n groupId,\n persist = false,\n updateAnchor = false,\n defaultValue,\n value: _value,\n onValueChange: _onValueChange,\n ...props\n}: TabsProps) {\n const tabsRef = useRef<HTMLDivElement>(null);\n const valueToIdMap = useMemo(() => new Map<string, string>(), []);\n const [value, setValue] =\n _value === undefined\n ? // eslint-disable-next-line react-hooks/rules-of-hooks -- not supposed to change controlled/uncontrolled\n useState(defaultValue)\n : // eslint-disable-next-line react-hooks/rules-of-hooks -- not supposed to change controlled/uncontrolled\n [_value, useEffectEvent((v: string) => _onValueChange?.(v))];\n\n useLayoutEffect(() => {\n if (!groupId) return;\n let previous = sessionStorage.getItem(groupId);\n if (persist) previous ??= localStorage.getItem(groupId);\n if (previous) setValue(previous);\n\n const groupListeners = listeners.get(groupId) ?? new Set();\n groupListeners.add(setValue);\n listeners.set(groupId, groupListeners);\n return () => {\n groupListeners.delete(setValue);\n };\n }, [groupId, persist, setValue]);\n\n useLayoutEffect(() => {\n const hash = window.location.hash.slice(1);\n if (!hash) return;\n\n for (const [value, id] of valueToIdMap.entries()) {\n if (id === hash) {\n setValue(value);\n tabsRef.current?.scrollIntoView();\n break;\n }\n }\n }, [setValue, valueToIdMap]);\n\n return (\n <Primitive.Tabs\n ref={mergeRefs(ref, tabsRef)}\n value={value}\n onValueChange={(v: string) => {\n if (updateAnchor) {\n const id = valueToIdMap.get(v);\n\n if (id) {\n window.history.replaceState(null, '', `#${id}`);\n }\n }\n\n if (groupId) {\n const groupListeners = listeners.get(groupId);\n if (groupListeners) {\n for (const listener of groupListeners) listener(v);\n }\n\n sessionStorage.setItem(groupId, v);\n if (persist) localStorage.setItem(groupId, v);\n } else {\n setValue(v);\n }\n }}\n {...props}\n >\n <TabsContext value={useMemo(() => ({ valueToIdMap }), [valueToIdMap])}>\n {props.children}\n </TabsContext>\n </Primitive.Tabs>\n );\n}\n\nexport function TabsContent({ value, ...props }: ComponentProps<typeof Primitive.TabsContent>) {\n const { valueToIdMap } = useTabContext();\n\n if (props.id) {\n valueToIdMap.set(value, props.id);\n }\n\n return (\n <Primitive.TabsContent value={value} {...props}>\n {props.children}\n </Primitive.TabsContent>\n );\n}\n"],"mappings":";;;;;;;;AAgBA,MAAM,4BAAY,IAAI,KAAkC;AAmBxD,MAAM,cAAc,cAEV,KAAK;AAEf,SAAS,gBAAgB;CACvB,MAAM,MAAM,IAAI,YAAY;AAC5B,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,yCAAyC;AACnE,QAAO;;AAGT,MAAa,WAAW,UAAU;AAElC,MAAa,cAAc,UAAU;AAErC,SAAgB,KAAK,EACnB,KACA,SACA,UAAU,OACV,eAAe,OACf,cACA,OAAO,QACP,eAAe,gBACf,GAAG,SACS;CACZ,MAAM,UAAU,OAAuB,KAAK;CAC5C,MAAM,eAAe,8BAAc,IAAI,KAAqB,EAAE,EAAE,CAAC;CACjE,MAAM,CAAC,OAAO,YACZ,WAAW,SAEP,SAAS,aAAa,GAEtB,CAAC,QAAQ,gBAAgB,MAAc,iBAAiB,EAAE,CAAC,CAAC;AAElE,uBAAsB;AACpB,MAAI,CAAC,QAAS;EACd,IAAI,WAAW,eAAe,QAAQ,QAAQ;AAC9C,MAAI,QAAS,cAAa,aAAa,QAAQ,QAAQ;AACvD,MAAI,SAAU,UAAS,SAAS;EAEhC,MAAM,iBAAiB,UAAU,IAAI,QAAQ,oBAAI,IAAI,KAAK;AAC1D,iBAAe,IAAI,SAAS;AAC5B,YAAU,IAAI,SAAS,eAAe;AACtC,eAAa;AACX,kBAAe,OAAO,SAAS;;IAEhC;EAAC;EAAS;EAAS;EAAS,CAAC;AAEhC,uBAAsB;EACpB,MAAM,OAAO,OAAO,SAAS,KAAK,MAAM,EAAE;AAC1C,MAAI,CAAC,KAAM;AAEX,OAAK,MAAM,CAACA,SAAO,OAAO,aAAa,SAAS,CAC9C,KAAI,OAAO,MAAM;AACf,YAASA,QAAM;AACf,WAAQ,SAAS,gBAAgB;AACjC;;IAGH,CAAC,UAAU,aAAa,CAAC;AAE5B,QACE,oBAAC,UAAU;EACT,KAAK,UAAU,KAAK,QAAQ;EACrB;EACP,gBAAgB,MAAc;AAC5B,OAAI,cAAc;IAChB,MAAM,KAAK,aAAa,IAAI,EAAE;AAE9B,QAAI,GACF,QAAO,QAAQ,aAAa,MAAM,IAAI,IAAI,KAAK;;AAInD,OAAI,SAAS;IACX,MAAM,iBAAiB,UAAU,IAAI,QAAQ;AAC7C,QAAI,eACF,MAAK,MAAM,YAAY,eAAgB,UAAS,EAAE;AAGpD,mBAAe,QAAQ,SAAS,EAAE;AAClC,QAAI,QAAS,cAAa,QAAQ,SAAS,EAAE;SAE7C,UAAS,EAAE;;EAGf,GAAI;YAEJ,oBAAC;GAAY,OAAO,eAAe,EAAE,cAAc,GAAG,CAAC,aAAa,CAAC;aAClE,MAAM;IACK;GACC;;AAIrB,SAAgB,YAAY,EAAE,OAAO,GAAG,SAAuD;CAC7F,MAAM,EAAE,iBAAiB,eAAe;AAExC,KAAI,MAAM,GACR,cAAa,IAAI,OAAO,MAAM,GAAG;AAGnC,QACE,oBAAC,UAAU;EAAmB;EAAO,GAAI;YACtC,MAAM;GACe"}
|
package/dist/contexts/i18n.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
//# sourceMappingURL=i18n.d.ts.map
|
|
1
|
+
export * from "@fumadocs/ui/contexts/i18n";
|
package/dist/contexts/i18n.js
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { __reExport } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
export * from "@fumadocs/ui/contexts/i18n"
|
|
4
|
+
|
|
5
|
+
//#region src/contexts/i18n.tsx
|
|
6
|
+
var i18n_exports = {};
|
|
7
|
+
import * as import__fumadocs_ui_contexts_i18n from "@fumadocs/ui/contexts/i18n";
|
|
8
|
+
__reExport(i18n_exports, import__fumadocs_ui_contexts_i18n);
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { i18n_exports };
|
|
12
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","names":[],"sources":["../../src/contexts/i18n.tsx"],"sourcesContent":["export * from '@fumadocs/ui/contexts/i18n';\n"],"mappings":""}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "@fumadocs/ui/contexts/search";
|
|
2
|
+
|
|
3
|
+
//#region src/contexts/search.d.ts
|
|
4
|
+
|
|
5
|
+
import * as import__fumadocs_ui_contexts_search from "@fumadocs/ui/contexts/search";
|
|
6
|
+
//#endregion
|
|
7
|
+
export { import__fumadocs_ui_contexts_search as search_d_exports };
|
|
2
8
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","
|
|
1
|
+
{"version":3,"file":"search.d.ts","names":[],"sources":["../../src/contexts/search.tsx"],"sourcesContent":[],"mappings":""}
|
package/dist/contexts/search.js
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { __reExport } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
export * from "@fumadocs/ui/contexts/search"
|
|
4
|
+
|
|
5
|
+
//#region src/contexts/search.tsx
|
|
6
|
+
var search_exports = {};
|
|
7
|
+
import * as import__fumadocs_ui_contexts_search from "@fumadocs/ui/contexts/search";
|
|
8
|
+
__reExport(search_exports, import__fumadocs_ui_contexts_search);
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { search_exports };
|
|
12
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","names":[],"sources":["../../src/contexts/search.tsx"],"sourcesContent":["export * from '@fumadocs/ui/contexts/search';\n"],"mappings":""}
|
package/dist/contexts/tree.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
//# sourceMappingURL=tree.d.ts.map
|
|
1
|
+
export * from "@fumadocs/ui/contexts/tree";
|
package/dist/contexts/tree.js
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { __reExport } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
export * from "@fumadocs/ui/contexts/tree"
|
|
4
|
+
|
|
5
|
+
//#region src/contexts/tree.tsx
|
|
6
|
+
var tree_exports = {};
|
|
7
|
+
import * as import__fumadocs_ui_contexts_tree from "@fumadocs/ui/contexts/tree";
|
|
8
|
+
__reExport(tree_exports, import__fumadocs_ui_contexts_tree);
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { tree_exports };
|
|
12
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","names":[],"sources":["../../src/contexts/tree.tsx"],"sourcesContent":["export * from '@fumadocs/ui/contexts/tree';\n"],"mappings":""}
|
package/dist/i18n.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
//# sourceMappingURL=i18n.d.ts.map
|
|
1
|
+
export * from "@fumadocs/ui/i18n";
|
package/dist/i18n.js
CHANGED
|
@@ -1,15 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { SidebarTab } from "../../components/sidebar/tabs/index.js";
|
|
2
|
+
import * as react_jsx_runtime30 from "react/jsx-runtime";
|
|
3
|
+
import * as react0 from "react";
|
|
4
|
+
import { ComponentProps, ReactNode } from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/layouts/docs/client.d.ts
|
|
7
|
+
declare const LayoutContext: react0.Context<{
|
|
8
|
+
isNavTransparent: boolean;
|
|
5
9
|
} | null>;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
declare function LayoutContextProvider({
|
|
11
|
+
navTransparentMode,
|
|
12
|
+
children
|
|
13
|
+
}: {
|
|
14
|
+
navTransparentMode?: 'always' | 'top' | 'none';
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}): react_jsx_runtime30.JSX.Element;
|
|
17
|
+
declare function LayoutHeader(props: ComponentProps<'header'>): react_jsx_runtime30.JSX.Element;
|
|
18
|
+
declare function LayoutBody({
|
|
19
|
+
className,
|
|
20
|
+
style,
|
|
21
|
+
children,
|
|
22
|
+
...props
|
|
23
|
+
}: ComponentProps<'div'>): react_jsx_runtime30.JSX.Element;
|
|
24
|
+
declare function LayoutTabs({
|
|
25
|
+
options,
|
|
26
|
+
...props
|
|
27
|
+
}: ComponentProps<'div'> & {
|
|
28
|
+
options: SidebarTab[];
|
|
29
|
+
}): react_jsx_runtime30.JSX.Element;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { LayoutBody, LayoutContext, LayoutContextProvider, LayoutHeader, LayoutTabs };
|
|
15
32
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","
|
|
1
|
+
{"version":3,"file":"client.d.ts","names":[],"sources":["../../../src/layouts/docs/client.tsx"],"sourcesContent":[],"mappings":";;;;;;cAWa,eAEE,MAAA,CAFW;;;iBAIV,qBAAA;;;;EAJH,kBAEE,CAAA,EAAA,QAAA,GAAA,KAFW,GAAA,MAAA;EAIV,QAAA,EAKJ,SALI;CACd,CAAA,EAKD,mBAAA,CAAA,GAAA,CAAA,OALC;AACA,iBAsBc,YAAA,CAtBd,KAAA,EAsBkC,cAtBlC,CAAA,QAAA,CAAA,CAAA,EAsB0D,mBAAA,CAAA,GAAA,CAAA,OAtB1D;AAGU,iBA6BI,UAAA,CA7BJ;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6ByD,cA7BzD,CAAA,KAAA,CAAA,CAAA,EA6B8E,mBAAA,CAAA,GAAA,CAAA,OA7B9E;AACX,iBA0De,UAAA,CA1Df;EAAA,OAAA;EAAA,GAAA;AAkBD,CAlBC,EA6DE,cA7DF,CAAA,KAAA,CAAA,GAAA;EAAA,OAAA,EA8DU,UA9DV,EAAA;AAkBD,CAAA,CAAA,EA6CC,mBAAA,CAAA,GAAA,CAAA,OA7CmC"}
|
|
@@ -1,41 +1,68 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { usePathname } from
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
|
|
3
|
+
import { useSidebar } from "../../components/sidebar/base.js";
|
|
4
|
+
import { isTabActive } from "../../components/sidebar/tabs/dropdown.js";
|
|
5
|
+
import Link from "fumadocs-core/link";
|
|
6
|
+
import { usePathname } from "fumadocs-core/framework";
|
|
7
|
+
import { cn } from "@fumadocs/ui/cn";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
import { createContext, use, useMemo } from "react";
|
|
10
|
+
import { useIsScrollTop } from "@fumadocs/ui/hooks/use-is-scroll-top";
|
|
11
|
+
|
|
12
|
+
//#region src/layouts/docs/client.tsx
|
|
13
|
+
const LayoutContext = createContext(null);
|
|
14
|
+
function LayoutContextProvider({ navTransparentMode = "none", children }) {
|
|
15
|
+
const isTop = useIsScrollTop({ enabled: navTransparentMode === "top" }) ?? true;
|
|
16
|
+
const isNavTransparent = navTransparentMode === "top" ? isTop : navTransparentMode === "always";
|
|
17
|
+
return /* @__PURE__ */ jsx(LayoutContext, {
|
|
18
|
+
value: useMemo(() => ({ isNavTransparent }), [isNavTransparent]),
|
|
19
|
+
children
|
|
20
|
+
});
|
|
17
21
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
function LayoutHeader(props) {
|
|
23
|
+
const { isNavTransparent } = use(LayoutContext);
|
|
24
|
+
return /* @__PURE__ */ jsx("header", {
|
|
25
|
+
"data-transparent": isNavTransparent,
|
|
26
|
+
...props,
|
|
27
|
+
children: props.children
|
|
28
|
+
});
|
|
21
29
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
function LayoutBody({ className, style, children, ...props }) {
|
|
31
|
+
const { collapsed } = useSidebar();
|
|
32
|
+
return /* @__PURE__ */ jsx("div", {
|
|
33
|
+
id: "nd-docs-layout",
|
|
34
|
+
className: cn("grid transition-[grid-template-columns] overflow-x-clip min-h-(--fd-docs-height) auto-cols-auto auto-rows-auto [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-toc-popover-height:0px] [--fd-sidebar-width:0px] [--fd-toc-width:0px]", className),
|
|
35
|
+
"data-sidebar-collapsed": collapsed,
|
|
36
|
+
style: {
|
|
37
|
+
gridTemplate: `"sidebar header toc"
|
|
26
38
|
"sidebar toc-popover toc"
|
|
27
39
|
"sidebar main toc" 1fr / minmax(var(--fd-sidebar-col), 1fr) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-width) - var(--fd-toc-width))) minmax(min-content, 1fr)`,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
"--fd-docs-row-1": "var(--fd-banner-height, 0px)",
|
|
41
|
+
"--fd-docs-row-2": "calc(var(--fd-docs-row-1) + var(--fd-header-height))",
|
|
42
|
+
"--fd-docs-row-3": "calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height))",
|
|
43
|
+
"--fd-sidebar-col": collapsed ? "0px" : "var(--fd-sidebar-width)",
|
|
44
|
+
...style
|
|
45
|
+
},
|
|
46
|
+
...props,
|
|
47
|
+
children
|
|
48
|
+
});
|
|
34
49
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
50
|
+
function LayoutTabs({ options, ...props }) {
|
|
51
|
+
const pathname = usePathname();
|
|
52
|
+
const selected = useMemo(() => {
|
|
53
|
+
return options.findLast((option) => isTabActive(option, pathname));
|
|
54
|
+
}, [options, pathname]);
|
|
55
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56
|
+
...props,
|
|
57
|
+
className: cn("flex flex-row items-end gap-6 overflow-auto [grid-area:main]", props.className),
|
|
58
|
+
children: options.map((option, i) => /* @__PURE__ */ jsx(Link, {
|
|
59
|
+
href: option.url,
|
|
60
|
+
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 !== option && "hidden", selected === option && "border-fd-primary text-fd-primary"),
|
|
61
|
+
children: option.title
|
|
62
|
+
}, i))
|
|
63
|
+
});
|
|
41
64
|
}
|
|
65
|
+
|
|
66
|
+
//#endregion
|
|
67
|
+
export { LayoutBody, LayoutContext, LayoutContextProvider, LayoutHeader, LayoutTabs };
|
|
68
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","names":[],"sources":["../../../src/layouts/docs/client.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentProps, createContext, type ReactNode, use, useMemo } from 'react';\nimport { cn } from '@fumadocs/ui/cn';\nimport { useSidebar } from '@/components/sidebar/base';\nimport { usePathname } from 'fumadocs-core/framework';\nimport Link from 'fumadocs-core/link';\nimport type { SidebarTab } from '@/components/sidebar/tabs';\nimport { isTabActive } from '@/components/sidebar/tabs/dropdown';\nimport { useIsScrollTop } from '@fumadocs/ui/hooks/use-is-scroll-top';\n\nexport const LayoutContext = createContext<{\n isNavTransparent: boolean;\n} | null>(null);\n\nexport function LayoutContextProvider({\n navTransparentMode = 'none',\n children,\n}: {\n navTransparentMode?: 'always' | 'top' | 'none';\n children: ReactNode;\n}) {\n const isTop = useIsScrollTop({ enabled: navTransparentMode === 'top' }) ?? true;\n const isNavTransparent = navTransparentMode === 'top' ? isTop : navTransparentMode === 'always';\n\n return (\n <LayoutContext\n value={useMemo(\n () => ({\n isNavTransparent,\n }),\n [isNavTransparent],\n )}\n >\n {children}\n </LayoutContext>\n );\n}\n\nexport function LayoutHeader(props: ComponentProps<'header'>) {\n const { isNavTransparent } = use(LayoutContext)!;\n\n return (\n <header data-transparent={isNavTransparent} {...props}>\n {props.children}\n </header>\n );\n}\n\nexport function LayoutBody({ className, style, children, ...props }: ComponentProps<'div'>) {\n const { collapsed } = useSidebar();\n\n return (\n <div\n id=\"nd-docs-layout\"\n className={cn(\n 'grid transition-[grid-template-columns] overflow-x-clip min-h-(--fd-docs-height) auto-cols-auto auto-rows-auto [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-toc-popover-height:0px] [--fd-sidebar-width:0px] [--fd-toc-width:0px]',\n className,\n )}\n data-sidebar-collapsed={collapsed}\n style={\n {\n gridTemplate: `\"sidebar header toc\"\n \"sidebar toc-popover toc\"\n \"sidebar main toc\" 1fr / minmax(var(--fd-sidebar-col), 1fr) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-width) - var(--fd-toc-width))) minmax(min-content, 1fr)`,\n '--fd-docs-row-1': 'var(--fd-banner-height, 0px)',\n '--fd-docs-row-2': 'calc(var(--fd-docs-row-1) + var(--fd-header-height))',\n '--fd-docs-row-3': 'calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height))',\n '--fd-sidebar-col': collapsed ? '0px' : 'var(--fd-sidebar-width)',\n ...style,\n } as object\n }\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function LayoutTabs({\n options,\n ...props\n}: ComponentProps<'div'> & {\n options: SidebarTab[];\n}) {\n const pathname = usePathname();\n const selected = useMemo(() => {\n return options.findLast((option) => isTabActive(option, pathname));\n }, [options, pathname]);\n\n return (\n <div\n {...props}\n className={cn(\n 'flex flex-row items-end gap-6 overflow-auto [grid-area:main]',\n props.className,\n )}\n >\n {options.map((option, i) => (\n <Link\n key={i}\n href={option.url}\n className={cn(\n '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',\n option.unlisted && selected !== option && 'hidden',\n selected === option && 'border-fd-primary text-fd-primary',\n )}\n >\n {option.title}\n </Link>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,gBAAgB,cAEnB,KAAK;AAEf,SAAgB,sBAAsB,EACpC,qBAAqB,QACrB,YAIC;CACD,MAAM,QAAQ,eAAe,EAAE,SAAS,uBAAuB,OAAO,CAAC,IAAI;CAC3E,MAAM,mBAAmB,uBAAuB,QAAQ,QAAQ,uBAAuB;AAEvF,QACE,oBAAC;EACC,OAAO,eACE,EACL,kBACD,GACD,CAAC,iBAAiB,CACnB;EAEA;GACa;;AAIpB,SAAgB,aAAa,OAAiC;CAC5D,MAAM,EAAE,qBAAqB,IAAI,cAAc;AAE/C,QACE,oBAAC;EAAO,oBAAkB;EAAkB,GAAI;YAC7C,MAAM;GACA;;AAIb,SAAgB,WAAW,EAAE,WAAW,OAAO,UAAU,GAAG,SAAgC;CAC1F,MAAM,EAAE,cAAc,YAAY;AAElC,QACE,oBAAC;EACC,IAAG;EACH,WAAW,GACT,iPACA,UACD;EACD,0BAAwB;EACxB,OACE;GACE,cAAc;;;GAGd,mBAAmB;GACnB,mBAAmB;GACnB,mBAAmB;GACnB,oBAAoB,YAAY,QAAQ;GACxC,GAAG;GACJ;EAEH,GAAI;EAEH;GACG;;AAIV,SAAgB,WAAW,EACzB,SACA,GAAG,SAGF;CACD,MAAM,WAAW,aAAa;CAC9B,MAAM,WAAW,cAAc;AAC7B,SAAO,QAAQ,UAAU,WAAW,YAAY,QAAQ,SAAS,CAAC;IACjE,CAAC,SAAS,SAAS,CAAC;AAEvB,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GACT,gEACA,MAAM,UACP;YAEA,QAAQ,KAAK,QAAQ,MACpB,oBAAC;GAEC,MAAM,OAAO;GACb,WAAW,GACT,kLACA,OAAO,YAAY,aAAa,UAAU,UAC1C,aAAa,UAAU,oCACxB;aAEA,OAAO;KARH,EASA,CACP;GACE"}
|
|
@@ -1,36 +1,60 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { SidebarProvider } from "../../components/sidebar/base.js";
|
|
2
|
+
import { SidebarPageTreeComponents } from "../../components/sidebar/page-tree.js";
|
|
3
|
+
import { GetSidebarTabsOptions } from "../../components/sidebar/tabs/index.js";
|
|
4
|
+
import { SidebarTabWithProps } from "../../components/sidebar/tabs/dropdown.js";
|
|
5
|
+
import "./sidebar.js";
|
|
6
|
+
import { BaseLayoutProps } from "../shared/index.js";
|
|
7
|
+
import * as react_jsx_runtime115 from "react/jsx-runtime";
|
|
8
|
+
import { ComponentProps, HTMLAttributes, ReactNode } from "react";
|
|
9
|
+
import * as PageTree from "fumadocs-core/page-tree";
|
|
10
|
+
|
|
11
|
+
//#region src/layouts/docs/index.d.ts
|
|
12
|
+
interface DocsLayoutProps extends BaseLayoutProps {
|
|
13
|
+
tree: PageTree.Root;
|
|
14
|
+
sidebar?: SidebarOptions;
|
|
15
|
+
tabMode?: 'top' | 'auto';
|
|
16
|
+
/**
|
|
17
|
+
* Props for the `div` container
|
|
18
|
+
*/
|
|
19
|
+
containerProps?: HTMLAttributes<HTMLDivElement>;
|
|
16
20
|
}
|
|
17
|
-
interface SidebarOptions extends ComponentProps<'aside'>, Pick<ComponentProps<typeof
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
interface SidebarOptions extends ComponentProps<'aside'>, Pick<ComponentProps<typeof SidebarProvider>, 'defaultOpenLevel' | 'prefetch'> {
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
component?: ReactNode;
|
|
24
|
+
components?: Partial<SidebarPageTreeComponents>;
|
|
25
|
+
/**
|
|
26
|
+
* Root Toggle options
|
|
27
|
+
*/
|
|
28
|
+
tabs?: SidebarTabWithProps[] | GetSidebarTabsOptions | false;
|
|
29
|
+
banner?: ReactNode;
|
|
30
|
+
footer?: ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Support collapsing the sidebar on desktop mode
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue true
|
|
35
|
+
*/
|
|
36
|
+
collapsible?: boolean;
|
|
33
37
|
}
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
declare function DocsLayout({
|
|
39
|
+
nav: {
|
|
40
|
+
transparentMode,
|
|
41
|
+
...nav
|
|
42
|
+
},
|
|
43
|
+
sidebar: {
|
|
44
|
+
tabs: sidebarTabs,
|
|
45
|
+
enabled: sidebarEnabled,
|
|
46
|
+
defaultOpenLevel,
|
|
47
|
+
prefetch,
|
|
48
|
+
...sidebarProps
|
|
49
|
+
},
|
|
50
|
+
searchToggle,
|
|
51
|
+
themeSwitch,
|
|
52
|
+
tabMode,
|
|
53
|
+
i18n,
|
|
54
|
+
children,
|
|
55
|
+
tree,
|
|
56
|
+
...props
|
|
57
|
+
}: DocsLayoutProps): react_jsx_runtime115.JSX.Element;
|
|
58
|
+
//#endregion
|
|
59
|
+
export { DocsLayout, DocsLayoutProps };
|
|
36
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/layouts/docs/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;UA0BiB,eAAA,SAAwB;QACjC,QAAA,CAAS;YAEL;;EAHK;;;EAUiB,cAAA,CAAA,EAAf,cAAe,CAAA,cAAA,CAAA;;UAGxB,cAAA,SAEN,cAfqC,CAAA,OAAA,CAAA,EAgBrC,IAhBqC,CAgBhC,cAhBgC,CAAA,OAgBV,eAhBU,CAAA,EAAA,kBAAA,GAAA,UAAA,CAAA,CAAA;EAAe,OAAA,CAAA,EAAA,OAAA;EAa9C,SAAA,CAAA,EAKI,SAJZ;EAE6B,UAAA,CAAA,EAGhB,OAHgB,CAGR,yBAHQ,CAAA;EAAtB;;;EAGM,IAAA,CAAA,EAKN,mBALM,EAAA,GAKkB,qBALlB,GAAA,KAAA;EAKN,MAAA,CAAA,EAEE,SAFF;EAAwB,MAAA,CAAA,EAGtB,SAHsB;EAEtB;;;;;EAWK,WAAA,CAAA,EAAU,OAAA;;AAGhB,iBAHM,UAAA,CAGN;EAAA,GAAA,EAAA;IAAA,eAAA;IAAA,GAAA;EAAA,CAAA;EAAA,OAAA,EAAA;IAAA,IAAA,EAAA,WAAA;IAAA,OAAA,EACG,cADH;IAAA,gBAAA;IAAA,QAAA;IAAA,GAAA;EAAA,CAAA;EAAA,YAAA;EAAA,WAAA;EAAA,OAAA;EAAA,IAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAaP,eAbO,CAAA,EAaQ,oBAAA,CAAA,GAAA,CAAA,OAbR"}
|