fumadocs-ui 14.6.3 → 14.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/dialog/search-algolia.d.ts +1 -2
- package/dist/components/dialog/search-algolia.d.ts.map +1 -1
- package/dist/components/dialog/search-algolia.js +1 -2
- package/dist/components/dialog/search-default.d.ts +1 -2
- package/dist/components/dialog/search-default.d.ts.map +1 -1
- package/dist/components/dialog/search-default.js +1 -2
- package/dist/components/dialog/search-orama.d.ts +1 -2
- package/dist/components/dialog/search-orama.d.ts.map +1 -1
- package/dist/components/dialog/search-orama.js +1 -2
- package/dist/components/dialog/search.d.ts +13 -1
- package/dist/components/dialog/search.d.ts.map +1 -1
- package/dist/components/dialog/search.js +18 -0
- package/dist/contexts/i18n.d.ts +1 -0
- package/dist/contexts/i18n.d.ts.map +1 -1
- package/dist/contexts/i18n.js +13 -12
- package/dist/i18n.d.ts +2 -2
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +12 -9
- package/dist/layouts/docs/shared.d.ts +4 -1
- package/dist/layouts/docs/shared.d.ts.map +1 -1
- package/dist/layouts/docs/shared.js +56 -1
- package/dist/layouts/docs.d.ts +2 -2
- package/dist/layouts/docs.d.ts.map +1 -1
- package/dist/layouts/docs.js +3 -6
- package/dist/layouts/notebook.d.ts.map +1 -1
- package/dist/layouts/notebook.js +3 -5
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +4 -1
- package/dist/style.css +4 -6
- package/dist/theme/colors.d.ts.map +1 -1
- package/dist/theme/colors.js +1 -6
- package/package.json +5 -5
- package/dist/components/dialog/tag-list.d.ts +0 -14
- package/dist/components/dialog/tag-list.d.ts.map +0 -1
- package/dist/components/dialog/tag-list.js +0 -20
- package/dist/utils/get-sidebar-tabs.d.ts +0 -7
- package/dist/utils/get-sidebar-tabs.d.ts.map +0 -1
- package/dist/utils/get-sidebar-tabs.js +0 -47
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type AlgoliaOptions } from 'fumadocs-core/search/client';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
|
-
import { type SharedProps } from './search';
|
|
4
|
-
import { type TagItem } from './tag-list';
|
|
3
|
+
import { type SharedProps, type TagItem } from './search';
|
|
5
4
|
export interface AlgoliaSearchDialogProps extends SharedProps {
|
|
6
5
|
index: AlgoliaOptions['index'];
|
|
7
6
|
searchOptions?: Omit<AlgoliaOptions, 'index'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-algolia.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search-algolia.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"search-algolia.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search-algolia.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,OAAO,EACb,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAEjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,KAAK,EACL,aAAa,EACb,IAAI,EACJ,UAAU,EACV,WAAmB,EACnB,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,wBAAwB,GAAG,SAAS,CA0CtC"}
|
|
@@ -3,8 +3,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import { useDocsSearch, } from 'fumadocs-core/search/client';
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useOnChange } from 'fumadocs-core/utils/use-on-change';
|
|
6
|
-
import { SearchDialog } from './search';
|
|
7
|
-
import { TagsList } from './tag-list';
|
|
6
|
+
import { SearchDialog, TagsList, } from './search';
|
|
8
7
|
export default function AlgoliaSearchDialog({ index, searchOptions, tags, defaultTag, showAlgolia = false, allowClear = false, ...props }) {
|
|
9
8
|
const [tag, setTag] = useState(defaultTag);
|
|
10
9
|
const { search, setSearch, query } = useDocsSearch({
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import { type SharedProps } from './search';
|
|
3
|
-
import { type TagItem } from './tag-list';
|
|
2
|
+
import { type SharedProps, type TagItem } from './search';
|
|
4
3
|
export interface DefaultSearchDialogProps extends SharedProps {
|
|
5
4
|
/**
|
|
6
5
|
* @defaultValue 'fetch'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-default.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search-default.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGjD,OAAO,
|
|
1
|
+
{"version":3,"file":"search-default.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search-default.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGjD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,OAAO,EAEb,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,UAAU,EACV,IAAI,EACJ,GAAG,EACH,OAAO,EACP,IAAc,EACd,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,wBAAwB,GAAG,SAAS,CA8CtC"}
|
|
@@ -4,8 +4,7 @@ import { useDocsSearch } from 'fumadocs-core/search/client';
|
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useOnChange } from 'fumadocs-core/utils/use-on-change';
|
|
6
6
|
import { useI18n } from '../../contexts/i18n';
|
|
7
|
-
import { SearchDialog } from './search';
|
|
8
|
-
import { TagsList } from './tag-list';
|
|
7
|
+
import { SearchDialog, TagsList, } from './search';
|
|
9
8
|
export default function DefaultSearchDialog({ defaultTag, tags, api, delayMs, type = 'fetch', allowClear = false, ...props }) {
|
|
10
9
|
const { locale } = useI18n();
|
|
11
10
|
const [tag, setTag] = useState(defaultTag);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type OramaCloudOptions } from 'fumadocs-core/search/client';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
|
-
import { type SharedProps } from './search';
|
|
4
|
-
import { type TagItem } from './tag-list';
|
|
3
|
+
import { type SharedProps, type TagItem } from './search';
|
|
5
4
|
export interface OramaSearchDialogProps extends SharedProps {
|
|
6
5
|
client: OramaCloudOptions['client'];
|
|
7
6
|
searchOptions?: OramaCloudOptions['params'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-orama.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search-orama.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"search-orama.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search-orama.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,OAAO,EAEb,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,MAAM,EACN,aAAa,EACb,IAAI,EACJ,UAAU,EACV,SAAiB,EACjB,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,sBAAsB,GAAG,SAAS,CA0CpC"}
|
|
@@ -3,8 +3,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import { useDocsSearch, } from 'fumadocs-core/search/client';
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { useOnChange } from 'fumadocs-core/utils/use-on-change';
|
|
6
|
-
import { SearchDialog } from './search';
|
|
7
|
-
import { TagsList } from './tag-list';
|
|
6
|
+
import { SearchDialog, TagsList, } from './search';
|
|
8
7
|
/**
|
|
9
8
|
* Orama Cloud integration
|
|
10
9
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
1
|
+
import { type ReactNode, type HTMLAttributes } from 'react';
|
|
2
2
|
import type { SortedResult } from 'fumadocs-core/server';
|
|
3
3
|
export type SearchLink = [name: string, href: string];
|
|
4
4
|
type ReactSortedResult = SortedResult & {
|
|
@@ -26,5 +26,17 @@ interface SearchResultProps {
|
|
|
26
26
|
hideResults?: boolean;
|
|
27
27
|
}
|
|
28
28
|
export declare function SearchDialog({ open, onOpenChange, footer, links, ...props }: SearchDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export interface TagItem {
|
|
30
|
+
name: string;
|
|
31
|
+
value: string | undefined;
|
|
32
|
+
props?: HTMLAttributes<HTMLButtonElement>;
|
|
33
|
+
}
|
|
34
|
+
export interface TagsListProps extends HTMLAttributes<HTMLDivElement> {
|
|
35
|
+
tag?: string;
|
|
36
|
+
onTagChange: (tag: string | undefined) => void;
|
|
37
|
+
allowClear?: boolean;
|
|
38
|
+
items: TagItem[];
|
|
39
|
+
}
|
|
40
|
+
export declare function TagsList({ tag, onTagChange, items, allowClear, ...props }: TagsListProps): import("react/jsx-runtime").JSX.Element;
|
|
29
41
|
export {};
|
|
30
42
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/search.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,SAAS,EAMd,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEtD,KAAK,iBAAiB,GAAG,YAAY,GAAG;IACtC,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG,WAAW,GAClC,gBAAgB,GAChB,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG;IACjC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEvC,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEJ,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,KAAU,EACV,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAoCnB;AA2LD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,KAAK,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAaD,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,WAAW,EACX,KAAK,EACL,UAAU,EACV,GAAG,KAAK,EACT,EAAE,aAAa,2CA+Bf"}
|
|
@@ -9,6 +9,7 @@ import { useSearchContext } from '../../contexts/search';
|
|
|
9
9
|
import { useSidebar } from '../../contexts/sidebar';
|
|
10
10
|
import { buttonVariants } from '../../components/ui/button';
|
|
11
11
|
import { Dialog, DialogContent, DialogOverlay, DialogTitle, } from '@radix-ui/react-dialog';
|
|
12
|
+
import { cva } from 'class-variance-authority';
|
|
12
13
|
export function SearchDialog({ open, onOpenChange, footer, links = [], ...props }) {
|
|
13
14
|
const { text } = useI18n();
|
|
14
15
|
const defaultItems = useMemo(() => links.map(([name, link]) => ({
|
|
@@ -93,3 +94,20 @@ function CommandItem({ active, onActiveChange, value, ...props }) {
|
|
|
93
94
|
}
|
|
94
95
|
}, [active, value]), type: "button", "aria-selected": active === value, onPointerMove: () => onActiveChange(value), ...props, className: cn('flex min-h-10 select-none flex-row items-center gap-2.5 rounded-lg px-2 text-start text-sm', active === value && 'bg-fd-accent text-fd-accent-foreground', props.className), children: props.children }));
|
|
95
96
|
}
|
|
97
|
+
const itemVariants = cva('rounded-md border px-2 py-0.5 text-xs font-medium text-fd-muted-foreground transition-colors', {
|
|
98
|
+
variants: {
|
|
99
|
+
active: {
|
|
100
|
+
true: 'bg-fd-accent text-fd-accent-foreground',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
export function TagsList({ tag, onTagChange, items, allowClear, ...props }) {
|
|
105
|
+
return (_jsxs("div", { ...props, className: cn('flex flex-row items-center gap-1', props.className), children: [items.map((item) => (_jsx("button", { type: "button", "data-active": tag === item.value, className: cn(itemVariants({ active: tag === item.value }), item.props?.className), onClick: () => {
|
|
106
|
+
if (tag === item.value && allowClear) {
|
|
107
|
+
onTagChange(undefined);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
onTagChange(item.value);
|
|
111
|
+
}
|
|
112
|
+
}, tabIndex: -1, ...item.props, children: item.name }, item.value))), props.children] }));
|
|
113
|
+
}
|
package/dist/contexts/i18n.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ interface I18nContextType {
|
|
|
20
20
|
text: Translations;
|
|
21
21
|
locales?: LocaleItem[];
|
|
22
22
|
}
|
|
23
|
+
export declare const defaultTranslations: Translations;
|
|
23
24
|
export declare const I18nContext: import("react").Context<I18nContextType>;
|
|
24
25
|
export declare function I18nLabel(props: {
|
|
25
26
|
label: keyof Translations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/contexts/i18n.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IAEvB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/contexts/i18n.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IAEvB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,YAWjC,CAAC;AAEF,eAAO,MAAM,WAAW,0CAEtB,CAAC;AAEH,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,YAAY,CAAA;CAAE,GAAG,MAAM,CAItE;AAED,wBAAgB,OAAO,IAAI,eAAe,CAEzC"}
|
package/dist/contexts/i18n.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { createContext, useContext } from 'react';
|
|
3
|
+
export const defaultTranslations = {
|
|
4
|
+
search: 'Search',
|
|
5
|
+
searchNoResult: 'No results found',
|
|
6
|
+
toc: 'On this page',
|
|
7
|
+
tocNoHeadings: 'No Headings',
|
|
8
|
+
lastUpdate: 'Last updated on',
|
|
9
|
+
chooseLanguage: 'Choose a language',
|
|
10
|
+
nextPage: 'Next',
|
|
11
|
+
previousPage: 'Previous',
|
|
12
|
+
chooseTheme: 'Theme',
|
|
13
|
+
editOnGithub: 'Edit on GitHub',
|
|
14
|
+
};
|
|
3
15
|
export const I18nContext = createContext({
|
|
4
|
-
text:
|
|
5
|
-
search: 'Search',
|
|
6
|
-
searchNoResult: 'No results found',
|
|
7
|
-
toc: 'On this page',
|
|
8
|
-
tocNoHeadings: 'No Headings',
|
|
9
|
-
lastUpdate: 'Last updated on',
|
|
10
|
-
chooseLanguage: 'Choose a language',
|
|
11
|
-
nextPage: 'Next',
|
|
12
|
-
previousPage: 'Previous',
|
|
13
|
-
chooseTheme: 'Theme',
|
|
14
|
-
editOnGithub: 'Edit on GitHub',
|
|
15
|
-
},
|
|
16
|
+
text: defaultTranslations,
|
|
16
17
|
});
|
|
17
18
|
export function I18nLabel(props) {
|
|
18
19
|
const { text } = useI18n();
|
package/dist/i18n.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import { type Translations, type LocaleItem } from './contexts/i18n';
|
|
2
|
+
import { type Translations, defaultTranslations, type LocaleItem } from './contexts/i18n';
|
|
3
3
|
interface I18nProviderProps {
|
|
4
4
|
/**
|
|
5
5
|
* Current locale
|
|
@@ -20,5 +20,5 @@ interface I18nProviderProps {
|
|
|
20
20
|
children: ReactNode;
|
|
21
21
|
}
|
|
22
22
|
export declare function I18nProvider({ locales, locale, ...props }: I18nProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
export { type Translations };
|
|
23
|
+
export { defaultTranslations, type Translations };
|
|
24
24
|
//# sourceMappingURL=i18n.d.ts.map
|
package/dist/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAE5D,OAAO,EAEL,KAAK,YAAY,EAEjB,mBAAmB,EACnB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,iBAAiB;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAY,EACZ,MAAM,EACN,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAuCnB;AAED,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,CAAC"}
|
package/dist/i18n.js
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useCallback } from 'react';
|
|
3
|
+
import { useCallback, useRef } from 'react';
|
|
4
4
|
import { useRouter, usePathname } from 'next/navigation';
|
|
5
|
-
import { useI18n, I18nContext, } from './contexts/i18n';
|
|
5
|
+
import { useI18n, I18nContext, defaultTranslations, } from './contexts/i18n';
|
|
6
6
|
export function I18nProvider({ locales = [], locale, ...props }) {
|
|
7
7
|
const context = useI18n();
|
|
8
8
|
const router = useRouter();
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
.filter((v) => v.length > 0);
|
|
12
|
-
const onChange = useCallback((v) => {
|
|
9
|
+
const pathname = usePathname();
|
|
10
|
+
const onChangeCallback = (locale) => {
|
|
11
|
+
const segments = pathname.split('/').filter((v) => v.length > 0);
|
|
13
12
|
// If locale prefix hidden
|
|
14
13
|
if (segments[0] !== locale) {
|
|
15
|
-
segments.unshift(
|
|
14
|
+
segments.unshift(locale);
|
|
16
15
|
}
|
|
17
16
|
else {
|
|
18
|
-
segments[0] =
|
|
17
|
+
segments[0] = locale;
|
|
19
18
|
}
|
|
20
19
|
router.push(`/${segments.join('/')}`);
|
|
21
20
|
router.refresh();
|
|
22
|
-
}
|
|
21
|
+
};
|
|
22
|
+
const onChangeRef = useRef(onChangeCallback);
|
|
23
|
+
onChangeRef.current = onChangeCallback;
|
|
24
|
+
const onChange = useCallback((v) => onChangeRef.current(v), []);
|
|
23
25
|
return (_jsx(I18nContext.Provider, { value: {
|
|
24
26
|
locale,
|
|
25
27
|
locales,
|
|
@@ -30,3 +32,4 @@ export function I18nProvider({ locales = [], locale, ...props }) {
|
|
|
30
32
|
onChange: props.onChange ?? onChange,
|
|
31
33
|
}, children: props.children }));
|
|
32
34
|
}
|
|
35
|
+
export { defaultTranslations };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type LinkItemType } from '../../layouts/links';
|
|
2
2
|
import { type SidebarProps } from '../../layouts/docs/sidebar';
|
|
3
3
|
import type { PageTree } from 'fumadocs-core/server';
|
|
4
|
-
import { type TabOptions } from '../../utils/get-sidebar-tabs';
|
|
5
4
|
import type { FC, ReactNode } from 'react';
|
|
6
5
|
import type { Option } from '../../components/layout/root-toggle';
|
|
7
6
|
export declare const layoutVariables: {
|
|
8
7
|
'--fd-layout-offset': string;
|
|
9
8
|
};
|
|
9
|
+
export interface TabOptions {
|
|
10
|
+
transform?: (option: Option, node: PageTree.Folder) => Option | null;
|
|
11
|
+
}
|
|
10
12
|
export interface SidebarOptions extends SidebarProps {
|
|
11
13
|
enabled: boolean;
|
|
12
14
|
component: ReactNode;
|
|
@@ -40,5 +42,6 @@ export interface SidebarComponents {
|
|
|
40
42
|
export declare function SidebarLinkItem({ item }: {
|
|
41
43
|
item: LinkItemType;
|
|
42
44
|
}): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
45
|
+
export declare function checkPageTree(passed: unknown): void;
|
|
43
46
|
export declare function getSidebarTabsFromOptions(options: SidebarOptions['tabs'], tree: PageTree.Root): Option[] | undefined;
|
|
44
47
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/shared.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/shared.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAG9D,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,KAAK,CAAC;IAErC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;KAAE,CAAC,CAAC;IAClC,MAAM,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,SAAS,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,2UA+C/D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,QAY5C;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,wBASpB"}
|
|
@@ -3,7 +3,7 @@ import { BaseLinkItem } from '../../layouts/links';
|
|
|
3
3
|
import { SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, } from '../../layouts/docs/sidebar';
|
|
4
4
|
import { cn } from '../../utils/cn';
|
|
5
5
|
import { buttonVariants } from '../../components/ui/button';
|
|
6
|
-
import {
|
|
6
|
+
import { notFound } from 'next/navigation';
|
|
7
7
|
export const layoutVariables = {
|
|
8
8
|
'--fd-layout-offset': 'max(calc(50vw - var(--fd-layout-width) / 2), 0px)',
|
|
9
9
|
};
|
|
@@ -20,6 +20,15 @@ export function SidebarLinkItem({ item }) {
|
|
|
20
20
|
return item.children;
|
|
21
21
|
return (_jsx(SidebarItem, { href: item.url, icon: item.icon, external: item.external, children: item.text }));
|
|
22
22
|
}
|
|
23
|
+
export function checkPageTree(passed) {
|
|
24
|
+
if (!passed)
|
|
25
|
+
notFound();
|
|
26
|
+
if (typeof passed === 'object' &&
|
|
27
|
+
'children' in passed &&
|
|
28
|
+
Array.isArray(passed))
|
|
29
|
+
return;
|
|
30
|
+
throw new Error('You passed an invalid page tree to `<DocsLayout />`. Check your usage in layout.tsx if you have enabled i18n.');
|
|
31
|
+
}
|
|
23
32
|
export function getSidebarTabsFromOptions(options, tree) {
|
|
24
33
|
if (Array.isArray(options)) {
|
|
25
34
|
return options;
|
|
@@ -31,3 +40,49 @@ export function getSidebarTabsFromOptions(options, tree) {
|
|
|
31
40
|
return getSidebarTabs(tree);
|
|
32
41
|
}
|
|
33
42
|
}
|
|
43
|
+
const defaultTransform = (option, node) => {
|
|
44
|
+
if (!node.icon)
|
|
45
|
+
return option;
|
|
46
|
+
return {
|
|
47
|
+
...option,
|
|
48
|
+
icon: (_jsx("div", { className: "rounded-md border bg-fd-secondary p-1 shadow-md [&_svg]:size-5", children: node.icon })),
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
function getSidebarTabs(pageTree, { transform = defaultTransform } = {}) {
|
|
52
|
+
function findOptions(node) {
|
|
53
|
+
const results = [];
|
|
54
|
+
if (node.root) {
|
|
55
|
+
const index = node.index ?? node.children.at(0);
|
|
56
|
+
if (index?.type === 'page') {
|
|
57
|
+
const option = {
|
|
58
|
+
url: index.url,
|
|
59
|
+
title: node.name,
|
|
60
|
+
icon: node.icon,
|
|
61
|
+
description: node.description,
|
|
62
|
+
urls: getFolderUrls(node),
|
|
63
|
+
};
|
|
64
|
+
const mapped = transform ? transform(option, node) : option;
|
|
65
|
+
if (mapped)
|
|
66
|
+
results.push(mapped);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
for (const child of node.children) {
|
|
70
|
+
if (child.type === 'folder')
|
|
71
|
+
results.push(...findOptions(child));
|
|
72
|
+
}
|
|
73
|
+
return results;
|
|
74
|
+
}
|
|
75
|
+
return findOptions(pageTree);
|
|
76
|
+
}
|
|
77
|
+
function getFolderUrls(folder) {
|
|
78
|
+
const results = [];
|
|
79
|
+
if (folder.index)
|
|
80
|
+
results.push(folder.index.url);
|
|
81
|
+
for (const child of folder.children) {
|
|
82
|
+
if (child.type === 'page')
|
|
83
|
+
results.push(child.url);
|
|
84
|
+
if (child.type === 'folder')
|
|
85
|
+
results.push(...getFolderUrls(child));
|
|
86
|
+
}
|
|
87
|
+
return results;
|
|
88
|
+
}
|
package/dist/layouts/docs.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { PageTree } from 'fumadocs-core/server';
|
|
2
2
|
import { type ReactNode, type HTMLAttributes } from 'react';
|
|
3
3
|
import { type LinkItemType } from '../layouts/links';
|
|
4
|
-
import { getSidebarTabs, type TabOptions } from '../utils/get-sidebar-tabs';
|
|
5
4
|
import { type BaseLayoutProps } from './shared';
|
|
6
5
|
import { type SidebarOptions } from '../layouts/docs/shared';
|
|
7
6
|
export interface DocsLayoutProps extends BaseLayoutProps {
|
|
@@ -10,5 +9,6 @@ export interface DocsLayoutProps extends BaseLayoutProps {
|
|
|
10
9
|
containerProps?: HTMLAttributes<HTMLDivElement>;
|
|
11
10
|
}
|
|
12
11
|
export declare function DocsLayout({ nav: { enabled: navEnabled, component: navReplace, transparentMode, ...nav }, sidebar: { enabled: sidebarEnabled, collapsible, component: sidebarReplace, tabs: tabOptions, banner: sidebarBanner, footer: sidebarFooter, components: sidebarComponents, ...sidebar }, i18n, ...props }: DocsLayoutProps): ReactNode;
|
|
13
|
-
export {
|
|
12
|
+
export { getSidebarTabsFromOptions, type TabOptions } from './docs/shared';
|
|
13
|
+
export { type LinkItemType };
|
|
14
14
|
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/layouts/docs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAe5D,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/layouts/docs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAe5D,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,UAAU,CAAC;AAc1D,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAElC,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EACH,OAAO,EAAE,UAAiB,EAC1B,SAAS,EAAE,UAAU,EACrB,eAAe,EACf,GAAG,GAAG,EACF,EACN,OAAO,EAAE,EACP,OAAO,EAAE,cAAqB,EAC9B,WAAkB,EAClB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,OAAO,EACN,EACN,IAAY,EACZ,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,SAAS,CA2G7B;AA0FD,OAAO,EAAE,yBAAyB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAE,CAAC"}
|
package/dist/layouts/docs.js
CHANGED
|
@@ -6,7 +6,6 @@ import { buttonVariants } from '../components/ui/button';
|
|
|
6
6
|
import { CollapsibleSidebar, Sidebar, SidebarFooter, SidebarHeader, SidebarCollapseTrigger, SidebarViewport, SidebarPageTree, } from '../layouts/docs/sidebar';
|
|
7
7
|
import { replaceOrDefault } from '../layouts/shared';
|
|
8
8
|
import { BaseLinkItem, } from '../layouts/links';
|
|
9
|
-
import { getSidebarTabs } from '../utils/get-sidebar-tabs';
|
|
10
9
|
import { RootToggle } from '../components/layout/root-toggle';
|
|
11
10
|
import { getLinks } from './shared';
|
|
12
11
|
import { LanguageToggle, LanguageToggleText, } from '../components/layout/language-toggle';
|
|
@@ -16,14 +15,12 @@ import { NavProvider, Title } from '../components/layout/nav';
|
|
|
16
15
|
import { ThemeToggle } from '../components/layout/theme-toggle';
|
|
17
16
|
import { LargeSearchToggle, SearchToggle, } from '../components/layout/search-toggle';
|
|
18
17
|
import { SearchOnly } from '../contexts/search';
|
|
19
|
-
import { getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
18
|
+
import { checkPageTree, getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
20
19
|
import { StylesProvider } from '../contexts/layout';
|
|
21
|
-
import { notFound } from 'next/navigation';
|
|
22
20
|
export function DocsLayout({ nav: { enabled: navEnabled = true, component: navReplace, transparentMode, ...nav } = {}, sidebar: { enabled: sidebarEnabled = true, collapsible = true, component: sidebarReplace, tabs: tabOptions, banner: sidebarBanner, footer: sidebarFooter, components: sidebarComponents, ...sidebar } = {}, i18n = false, ...props }) {
|
|
21
|
+
checkPageTree(props.tree);
|
|
23
22
|
const links = getLinks(props.links ?? [], props.githubUrl);
|
|
24
23
|
const Aside = collapsible ? CollapsibleSidebar : Sidebar;
|
|
25
|
-
if (props.tree === undefined)
|
|
26
|
-
notFound();
|
|
27
24
|
const tabs = getSidebarTabsFromOptions(tabOptions, props.tree) ?? [];
|
|
28
25
|
const variables = cn('[--fd-tocnav-height:36px] md:[--fd-sidebar-width:268px] xl:[--fd-toc-width:268px] xl:[--fd-tocnav-height:0px]', !navReplace && navEnabled
|
|
29
26
|
? '[--fd-nav-height:3.5rem] md:[--fd-nav-height:0px]'
|
|
@@ -62,4 +59,4 @@ function SidebarFooterItems({ iconItems, i18n, sidebarCollapsible, disableThemeS
|
|
|
62
59
|
return null;
|
|
63
60
|
return (_jsxs("div", { className: "flex flex-row items-center", children: [iconItems.map((item, i) => (_jsx(BaseLinkItem, { item: item, className: cn(buttonVariants({ size: 'icon', color: 'ghost' }), 'text-fd-muted-foreground md:hidden'), "aria-label": item.label, children: item.icon }, i))), _jsx("div", { role: "separator", className: "flex-1" }), i18n ? (_jsxs(LanguageToggle, { className: "me-1.5", children: [_jsx(Languages, { className: "size-5" }), _jsx(LanguageToggleText, { className: "md:hidden" })] })) : null, !disableThemeSwitch ? (_jsx(ThemeToggle, { className: "p-0 md:order-first" })) : null, sidebarCollapsible ? (_jsx(SidebarCollapseTrigger, { className: "-me-1.5 max-md:hidden" })) : null] }));
|
|
64
61
|
}
|
|
65
|
-
export {
|
|
62
|
+
export { getSidebarTabsFromOptions } from './docs/shared';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AA8B1B,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,GAAG,EAAO,EACrC,OAAO,EAAE,EACP,WAAW,EAAE,kBAAyB,EACtC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,OAAO,EACN,EACN,IAAY,EACZ,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,SAAS,CA+E7B"}
|
package/dist/layouts/notebook.js
CHANGED
|
@@ -2,7 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Fragment } from 'react';
|
|
3
3
|
import { getLinks, } from '../layouts/shared';
|
|
4
4
|
import { CollapsibleSidebar, Sidebar, SidebarCollapseTrigger, SidebarFooter, SidebarHeader, SidebarViewport, SidebarPageTree, } from '../layouts/docs/sidebar';
|
|
5
|
-
import { notFound } from 'next/navigation';
|
|
6
5
|
import { RootToggle } from '../components/layout/root-toggle';
|
|
7
6
|
import { TreeContextProvider } from '../contexts/tree';
|
|
8
7
|
import { NavProvider, Title } from '../components/layout/nav';
|
|
@@ -16,14 +15,13 @@ import { BaseLinkItem } from '../layouts/links';
|
|
|
16
15
|
import { LanguageToggle } from '../components/layout/language-toggle';
|
|
17
16
|
import { ThemeToggle } from '../components/layout/theme-toggle';
|
|
18
17
|
import { Popover, PopoverContent, PopoverTrigger, } from '../components/ui/popover';
|
|
19
|
-
import { getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
18
|
+
import { checkPageTree, getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
20
19
|
import { Navbar, NavbarSidebarTrigger } from './notebook.client';
|
|
21
20
|
import { StylesProvider } from '../contexts/layout';
|
|
22
21
|
export function DocsLayout({ nav: { transparentMode, ...nav } = {}, sidebar: { collapsible: sidebarCollapsible = true, tabs: tabOptions, banner: sidebarBanner, footer: sidebarFooter, components: sidebarComponents, ...sidebar } = {}, i18n = false, ...props }) {
|
|
22
|
+
checkPageTree(props.tree);
|
|
23
23
|
const links = getLinks(props.links ?? [], props.githubUrl);
|
|
24
24
|
const Aside = sidebarCollapsible ? CollapsibleSidebar : Sidebar;
|
|
25
|
-
if (props.tree === undefined)
|
|
26
|
-
notFound();
|
|
27
25
|
const tabs = getSidebarTabsFromOptions(tabOptions, props.tree) ?? [];
|
|
28
26
|
const variables = cn('[--fd-nav-height:3.5rem] [--fd-tocnav-height:36px] md:[--fd-sidebar-width:268px] xl:[--fd-toc-width:268px] xl:[--fd-tocnav-height:0px]');
|
|
29
27
|
const pageStyles = {
|
|
@@ -34,7 +32,7 @@ export function DocsLayout({ nav: { transparentMode, ...nav } = {}, sidebar: { c
|
|
|
34
32
|
return (_jsx(TreeContextProvider, { tree: props.tree, children: _jsx(NavProvider, { transparentMode: transparentMode, children: _jsxs("main", { id: "nd-docs-layout", ...props.containerProps, className: cn('flex w-full flex-1 flex-row pe-[var(--fd-layout-offset)]', variables, props.containerProps?.className), style: {
|
|
35
33
|
...layoutVariables,
|
|
36
34
|
...props.containerProps?.style,
|
|
37
|
-
}, children: [_jsxs(Aside, { ...sidebar, className: cn('md:ps-[var(--fd-layout-offset)] md:[--fd-nav-height:0px]', sidebar.className), children: [_jsxs(SidebarHeader, { children: [_jsxs(SidebarHeaderItems, { nav: nav, links: links, children: [nav.children, sidebarCollapsible ? (_jsx(SidebarCollapseTrigger, { className: "ms-auto text-fd-muted-foreground" })) : null] }), sidebarBanner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "pt-4 empty:hidden lg:hidden", children: links.map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx("div", { className: "py-4", children: _jsx(SidebarPageTree, { components: sidebarComponents }) })] }),
|
|
35
|
+
}, children: [_jsxs(Aside, { ...sidebar, className: cn('md:ps-[var(--fd-layout-offset)] md:[--fd-nav-height:0px]', sidebar.className), children: [_jsxs(SidebarHeader, { children: [_jsxs(SidebarHeaderItems, { nav: nav, links: links, children: [nav.children, sidebarCollapsible ? (_jsx(SidebarCollapseTrigger, { className: "ms-auto text-fd-muted-foreground" })) : null] }), sidebarBanner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "pt-4 empty:hidden lg:hidden", children: links.map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx("div", { className: "py-4", children: _jsx(SidebarPageTree, { components: sidebarComponents }) })] }), _jsxs(SidebarFooter, { className: cn(!sidebarFooter && 'md:hidden'), children: [!props.disableThemeSwitch ? (_jsx(ThemeToggle, { className: "w-fit md:hidden" })) : null, sidebarFooter] })] }), _jsx(DocsNavbar, { nav: nav, links: links, i18n: i18n, sidebarCollapsible: sidebarCollapsible }), _jsx(StylesProvider, { ...pageStyles, children: props.children })] }) }) }));
|
|
38
36
|
}
|
|
39
37
|
function DocsNavbar({ sidebarCollapsible, links, nav = {}, i18n, }) {
|
|
40
38
|
return (_jsxs(Navbar, { children: [sidebarCollapsible ? (_jsx(SidebarCollapseTrigger, { className: "-ms-1.5 text-fd-muted-foreground data-[collapsed=false]:hidden max-md:hidden" })) : null, _jsx(SearchOnly, { children: _jsx(LargeSearchToggle, { className: "w-full max-w-[240px] rounded-lg max-md:hidden" }) }), _jsx(Title, { url: nav.url, title: nav.title, className: "md:hidden" }), _jsxs("div", { className: "flex flex-1 flex-row items-center gap-6 px-2", children: [links
|
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,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,mBAAmB,CAAC;AAI7E,OAAO,EAEL,KAAK,WAAW,EAIhB,KAAK,eAAe,EAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAMjC,KAAK,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,UAAU,CAAC,GAC/D,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEJ,KAAK,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAE1E,UAAU,mBACR,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1E,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,eAAe,CAAC;IAEtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,qBAAqB,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE9D;;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,cAAc,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,QAAQ,CAAC,EACvB,GAAQ,EACR,IAAY,EACZ,qBAAqB,EAAE,EACrB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,GAAG,iBAAiB,EAChB,EACN,cAAc,EAAE,EACd,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,EACrB,GAAG,UAAU,EACT,EACN,GAAG,KAAK,EACT,EAAE,aAAa,GAAG,SAAS,CAmG3B;AA+BD;;GAEG;AACH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
|
package/dist/page.js
CHANGED
|
@@ -40,7 +40,10 @@ function EditOnGitHub({ owner, repo, sha, path, ...props }) {
|
|
|
40
40
|
/**
|
|
41
41
|
* Add typography styles
|
|
42
42
|
*/
|
|
43
|
-
export const DocsBody = forwardRef((
|
|
43
|
+
export const DocsBody = forwardRef((props, ref) => (_jsx("div", { ref: ref, ...props, className: cn('prose contain-content', props.className), style: {
|
|
44
|
+
contentVisibility: 'auto',
|
|
45
|
+
...props.style,
|
|
46
|
+
} })));
|
|
44
47
|
DocsBody.displayName = 'DocsBody';
|
|
45
48
|
export const DocsDescription = forwardRef((props, ref) => {
|
|
46
49
|
// don't render if no description provided
|
package/dist/style.css
CHANGED
|
@@ -505,7 +505,7 @@ video {
|
|
|
505
505
|
--foreground: 0 0% 3.9%;
|
|
506
506
|
--muted: 0 0% 96.1%;
|
|
507
507
|
--muted-foreground: 0 0% 45.1%;
|
|
508
|
-
--popover: 0 0%
|
|
508
|
+
--popover: 0 0% 98%;
|
|
509
509
|
--popover-foreground: 0 0% 15.1%;
|
|
510
510
|
--card: 0 0% 94.7%;
|
|
511
511
|
--card-foreground: 0 0% 3.9%;
|
|
@@ -987,11 +987,6 @@ body {
|
|
|
987
987
|
border-bottom-width: 1px;
|
|
988
988
|
border-bottom-color: var(--tw-prose-th-borders);
|
|
989
989
|
}
|
|
990
|
-
#nd-sidebar {
|
|
991
|
-
--muted: 0deg 0% 89%;
|
|
992
|
-
--secondary: 0deg 0% 99%;
|
|
993
|
-
--muted-foreground: 0 0% 30%;
|
|
994
|
-
}
|
|
995
990
|
.dark #nd-sidebar {
|
|
996
991
|
--muted: 0deg 0% 16%;
|
|
997
992
|
--secondary: 0deg 0% 18%;
|
|
@@ -1868,6 +1863,9 @@ body {
|
|
|
1868
1863
|
.ease-out {
|
|
1869
1864
|
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
|
1870
1865
|
}
|
|
1866
|
+
.contain-content {
|
|
1867
|
+
contain: content;
|
|
1868
|
+
}
|
|
1871
1869
|
.steps {
|
|
1872
1870
|
counter-reset: step;
|
|
1873
1871
|
border-left-width: 1px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/theme/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/theme/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoUhD,eAAO,MAAM,OAAO;;;;;;;;;CASnB,CAAC"}
|
package/dist/theme/colors.js
CHANGED
|
@@ -86,7 +86,7 @@ const neutral = {
|
|
|
86
86
|
foreground: '0 0% 3.9%',
|
|
87
87
|
muted: '0 0% 96.1%',
|
|
88
88
|
'muted-foreground': '0 0% 45.1%',
|
|
89
|
-
popover: '0 0%
|
|
89
|
+
popover: '0 0% 98%',
|
|
90
90
|
'popover-foreground': '0 0% 15.1%',
|
|
91
91
|
card: '0 0% 94.7%',
|
|
92
92
|
'card-foreground': '0 0% 3.9%',
|
|
@@ -118,11 +118,6 @@ const neutral = {
|
|
|
118
118
|
ring: '0 0% 14.9%',
|
|
119
119
|
},
|
|
120
120
|
css: {
|
|
121
|
-
'#nd-sidebar': {
|
|
122
|
-
'--muted': '0deg 0% 89%',
|
|
123
|
-
'--secondary': '0deg 0% 99%',
|
|
124
|
-
'--muted-foreground': '0 0% 30%',
|
|
125
|
-
},
|
|
126
121
|
'.dark #nd-sidebar': {
|
|
127
122
|
'--muted': '0deg 0% 16%',
|
|
128
123
|
'--secondary': '0deg 0% 18%',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fumadocs-ui",
|
|
3
|
-
"version": "14.6.
|
|
3
|
+
"version": "14.6.5",
|
|
4
4
|
"description": "The framework for building a documentation website in Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"NextJs",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"postcss-selector-parser": "^7.0.0",
|
|
69
69
|
"react-medium-image-zoom": "^5.2.12",
|
|
70
70
|
"tailwind-merge": "^2.5.5",
|
|
71
|
-
"fumadocs-core": "14.6.
|
|
71
|
+
"fumadocs-core": "14.6.5"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@next/eslint-plugin-next": "^15.1.2",
|
|
@@ -81,9 +81,9 @@
|
|
|
81
81
|
"postcss-cli": "^11.0.0",
|
|
82
82
|
"tailwindcss": "^3.4.17",
|
|
83
83
|
"tsc-alias": "^1.8.10",
|
|
84
|
-
"@fumadocs/cli": "0.0.
|
|
85
|
-
"
|
|
86
|
-
"
|
|
84
|
+
"@fumadocs/cli": "0.0.6",
|
|
85
|
+
"eslint-config-custom": "0.0.0",
|
|
86
|
+
"tsconfig": "0.0.0"
|
|
87
87
|
},
|
|
88
88
|
"peerDependencies": {
|
|
89
89
|
"next": "14.x.x || 15.x.x",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes } from 'react';
|
|
2
|
-
export interface TagItem {
|
|
3
|
-
name: string;
|
|
4
|
-
value: string | undefined;
|
|
5
|
-
props?: HTMLAttributes<HTMLButtonElement>;
|
|
6
|
-
}
|
|
7
|
-
export interface TagsListProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
-
tag?: string;
|
|
9
|
-
onTagChange: (tag: string | undefined) => void;
|
|
10
|
-
allowClear?: boolean;
|
|
11
|
-
items: TagItem[];
|
|
12
|
-
}
|
|
13
|
-
export declare function TagsList({ tag, onTagChange, items, allowClear, ...props }: TagsListProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
//# sourceMappingURL=tag-list.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tag-list.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/tag-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,KAAK,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAaD,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,WAAW,EACX,KAAK,EACL,UAAU,EACV,GAAG,KAAK,EACT,EAAE,aAAa,2CA+Bf"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import { cn } from '../../utils/cn';
|
|
4
|
-
const itemVariants = cva('rounded-md border px-2 py-0.5 text-xs font-medium text-fd-muted-foreground transition-colors', {
|
|
5
|
-
variants: {
|
|
6
|
-
active: {
|
|
7
|
-
true: 'bg-fd-accent text-fd-accent-foreground',
|
|
8
|
-
},
|
|
9
|
-
},
|
|
10
|
-
});
|
|
11
|
-
export function TagsList({ tag, onTagChange, items, allowClear, ...props }) {
|
|
12
|
-
return (_jsxs("div", { ...props, className: cn('flex flex-row items-center gap-1', props.className), children: [items.map((item) => (_jsx("button", { type: "button", "data-active": tag === item.value, className: cn(itemVariants({ active: tag === item.value }), item.props?.className), onClick: () => {
|
|
13
|
-
if (tag === item.value && allowClear) {
|
|
14
|
-
onTagChange(undefined);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
onTagChange(item.value);
|
|
18
|
-
}
|
|
19
|
-
}, tabIndex: -1, ...item.props, children: item.name }, item.value))), props.children] }));
|
|
20
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { PageTree } from 'fumadocs-core/server';
|
|
2
|
-
import type { Option } from '../components/layout/root-toggle';
|
|
3
|
-
export interface TabOptions {
|
|
4
|
-
transform?: (option: Option, node: PageTree.Folder) => Option | null;
|
|
5
|
-
}
|
|
6
|
-
export declare function getSidebarTabs(pageTree: PageTree.Root, { transform }?: TabOptions): Option[];
|
|
7
|
-
//# sourceMappingURL=get-sidebar-tabs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-sidebar-tabs.d.ts","sourceRoot":"","sources":["../../src/utils/get-sidebar-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAeD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,CAAC,IAAI,EACvB,EAAE,SAA4B,EAAE,GAAE,UAAe,GAChD,MAAM,EAAE,CA8BV"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
const defaultTransform = (option, node) => {
|
|
3
|
-
if (!node.icon)
|
|
4
|
-
return option;
|
|
5
|
-
return {
|
|
6
|
-
...option,
|
|
7
|
-
icon: (_jsx("div", { className: "rounded-md border bg-fd-secondary p-1 shadow-md [&_svg]:size-5", children: node.icon })),
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
export function getSidebarTabs(pageTree, { transform = defaultTransform } = {}) {
|
|
11
|
-
function findOptions(node) {
|
|
12
|
-
const results = [];
|
|
13
|
-
if (node.root) {
|
|
14
|
-
const index = node.index ?? node.children.at(0);
|
|
15
|
-
if (index?.type === 'page') {
|
|
16
|
-
const option = {
|
|
17
|
-
url: index.url,
|
|
18
|
-
title: node.name,
|
|
19
|
-
icon: node.icon,
|
|
20
|
-
description: node.description,
|
|
21
|
-
urls: getFolderUrls(node),
|
|
22
|
-
};
|
|
23
|
-
const mapped = transform ? transform(option, node) : option;
|
|
24
|
-
if (mapped)
|
|
25
|
-
results.push(mapped);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
for (const child of node.children) {
|
|
29
|
-
if (child.type === 'folder')
|
|
30
|
-
results.push(...findOptions(child));
|
|
31
|
-
}
|
|
32
|
-
return results;
|
|
33
|
-
}
|
|
34
|
-
return findOptions(pageTree);
|
|
35
|
-
}
|
|
36
|
-
function getFolderUrls(folder) {
|
|
37
|
-
const results = [];
|
|
38
|
-
if (folder.index)
|
|
39
|
-
results.push(folder.index.url);
|
|
40
|
-
for (const child of folder.children) {
|
|
41
|
-
if (child.type === 'page')
|
|
42
|
-
results.push(child.url);
|
|
43
|
-
if (child.type === 'folder')
|
|
44
|
-
results.push(...getFolderUrls(child));
|
|
45
|
-
}
|
|
46
|
-
return results;
|
|
47
|
-
}
|