@fumadocs/base-ui 16.2.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/LICENSE +21 -0
- package/README.md +5 -0
- package/css/black.css +1 -0
- package/css/catppuccin.css +1 -0
- package/css/dusk.css +1 -0
- package/css/layouts/docs.css +1 -0
- package/css/layouts/home.css +1 -0
- package/css/layouts/notebook.css +1 -0
- package/css/neutral.css +1 -0
- package/css/ocean.css +1 -0
- package/css/preset.css +10 -0
- package/css/purple.css +1 -0
- package/css/shadcn.css +1 -0
- package/css/solar.css +1 -0
- package/css/style.css +9 -0
- package/css/vitepress.css +1 -0
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +41 -0
- package/dist/components/banner.d.ts +24 -0
- package/dist/components/banner.d.ts.map +1 -0
- package/dist/components/banner.js +54 -0
- package/dist/components/callout.d.ts +19 -0
- package/dist/components/callout.d.ts.map +1 -0
- package/dist/components/callout.js +34 -0
- package/dist/components/card.d.ts +11 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +10 -0
- package/dist/components/codeblock.d.ts +42 -0
- package/dist/components/codeblock.d.ts.map +1 -0
- package/dist/components/codeblock.js +68 -0
- package/dist/components/dialog/search-algolia.d.ts +25 -0
- package/dist/components/dialog/search-algolia.d.ts.map +1 -0
- package/dist/components/dialog/search-algolia.js +35 -0
- package/dist/components/dialog/search-default.d.ts +29 -0
- package/dist/components/dialog/search-default.d.ts.map +1 -0
- package/dist/components/dialog/search-default.js +40 -0
- package/dist/components/dialog/search-orama.d.ts +30 -0
- package/dist/components/dialog/search-orama.d.ts.map +1 -0
- package/dist/components/dialog/search-orama.js +40 -0
- package/dist/components/dialog/search.d.ts +72 -0
- package/dist/components/dialog/search.d.ts.map +1 -0
- package/dist/components/dialog/search.js +192 -0
- package/dist/components/dynamic-codeblock.d.ts +21 -0
- package/dist/components/dynamic-codeblock.d.ts.map +1 -0
- package/dist/components/dynamic-codeblock.js +33 -0
- package/dist/components/files.d.ts +19 -0
- package/dist/components/files.d.ts.map +1 -0
- package/dist/components/files.js +18 -0
- package/dist/components/github-info.d.ts +8 -0
- package/dist/components/github-info.d.ts.map +1 -0
- package/dist/components/github-info.js +53 -0
- package/dist/components/heading.d.ts +8 -0
- package/dist/components/heading.d.ts.map +1 -0
- package/dist/components/heading.js +9 -0
- package/dist/components/image-zoom.css +77 -0
- package/dist/components/image-zoom.d.ts +16 -0
- package/dist/components/image-zoom.d.ts.map +1 -0
- package/dist/components/image-zoom.js +23 -0
- package/dist/components/inline-toc.d.ts +8 -0
- package/dist/components/inline-toc.d.ts.map +1 -0
- package/dist/components/inline-toc.js +10 -0
- package/dist/components/sidebar/base.d.ts +72 -0
- package/dist/components/sidebar/base.d.ts.map +1 -0
- package/dist/components/sidebar/base.js +197 -0
- package/dist/components/sidebar/link-item.d.ts +11 -0
- package/dist/components/sidebar/link-item.d.ts.map +1 -0
- package/dist/components/sidebar/link-item.js +13 -0
- package/dist/components/sidebar/page-tree.d.ts +19 -0
- package/dist/components/sidebar/page-tree.d.ts.map +1 -0
- package/dist/components/sidebar/page-tree.js +34 -0
- package/dist/components/sidebar/tabs/dropdown.d.ts +11 -0
- package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -0
- package/dist/components/sidebar/tabs/dropdown.js +34 -0
- package/dist/components/sidebar/tabs/index.d.ts +21 -0
- package/dist/components/sidebar/tabs/index.d.ts.map +1 -0
- package/dist/components/sidebar/tabs/index.js +49 -0
- package/dist/components/steps.d.ts +8 -0
- package/dist/components/steps.d.ts.map +1 -0
- package/dist/components/steps.js +7 -0
- package/dist/components/tabs.d.ts +31 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +64 -0
- package/dist/components/toc/clerk.d.ts +2 -0
- package/dist/components/toc/clerk.d.ts.map +1 -0
- package/dist/components/toc/clerk.js +1 -0
- package/dist/components/toc/default.d.ts +2 -0
- package/dist/components/toc/default.d.ts.map +1 -0
- package/dist/components/toc/default.js +1 -0
- package/dist/components/toc/index.d.ts +2 -0
- package/dist/components/toc/index.d.ts.map +1 -0
- package/dist/components/toc/index.js +1 -0
- package/dist/components/type-table.d.ts +32 -0
- package/dist/components/type-table.d.ts.map +1 -0
- package/dist/components/type-table.js +28 -0
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +20 -0
- package/dist/components/ui/button.d.ts +8 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +20 -0
- package/dist/components/ui/collapsible.d.ts +9 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +9 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +15 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +11 -0
- package/dist/components/ui/scroll-area.d.ts +8 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +11 -0
- package/dist/components/ui/tabs.d.ts +22 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +79 -0
- package/dist/contexts/i18n.d.ts +2 -0
- package/dist/contexts/i18n.d.ts.map +1 -0
- package/dist/contexts/i18n.js +1 -0
- package/dist/contexts/search.d.ts +2 -0
- package/dist/contexts/search.d.ts.map +1 -0
- package/dist/contexts/search.js +1 -0
- package/dist/contexts/tree.d.ts +2 -0
- package/dist/contexts/tree.d.ts.map +1 -0
- package/dist/contexts/tree.js +1 -0
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +1 -0
- package/dist/layouts/docs/client.d.ts +15 -0
- package/dist/layouts/docs/client.d.ts.map +1 -0
- package/dist/layouts/docs/client.js +41 -0
- package/dist/layouts/docs/index.d.ts +36 -0
- package/dist/layouts/docs/index.d.ts.map +1 -0
- package/dist/layouts/docs/index.js +66 -0
- package/dist/layouts/docs/page/client.d.ts +24 -0
- package/dist/layouts/docs/page/client.d.ts.map +1 -0
- package/dist/layouts/docs/page/client.js +119 -0
- package/dist/layouts/docs/page/index.d.ts +58 -0
- package/dist/layouts/docs/page/index.d.ts.map +1 -0
- package/dist/layouts/docs/page/index.js +51 -0
- package/dist/layouts/docs/sidebar.d.ts +17 -0
- package/dist/layouts/docs/sidebar.d.ts.map +1 -0
- package/dist/layouts/docs/sidebar.js +94 -0
- package/dist/layouts/home/client.d.ts +6 -0
- package/dist/layouts/home/client.d.ts.map +1 -0
- package/dist/layouts/home/client.js +136 -0
- package/dist/layouts/home/index.d.ts +7 -0
- package/dist/layouts/home/index.d.ts.map +1 -0
- package/dist/layouts/home/index.js +8 -0
- package/dist/layouts/home/navbar.d.ts +7 -0
- package/dist/layouts/home/navbar.d.ts.map +1 -0
- package/dist/layouts/home/navbar.js +16 -0
- package/dist/layouts/notebook/client.d.ts +23 -0
- package/dist/layouts/notebook/client.d.ts.map +1 -0
- package/dist/layouts/notebook/client.js +104 -0
- package/dist/layouts/notebook/index.d.ts +34 -0
- package/dist/layouts/notebook/index.d.ts.map +1 -0
- package/dist/layouts/notebook/index.js +89 -0
- package/dist/layouts/notebook/page/client.d.ts +24 -0
- package/dist/layouts/notebook/page/client.d.ts.map +1 -0
- package/dist/layouts/notebook/page/client.js +119 -0
- package/dist/layouts/notebook/page/index.d.ts +58 -0
- package/dist/layouts/notebook/page/index.d.ts.map +1 -0
- package/dist/layouts/notebook/page/index.js +51 -0
- package/dist/layouts/notebook/sidebar.d.ts +17 -0
- package/dist/layouts/notebook/sidebar.d.ts.map +1 -0
- package/dist/layouts/notebook/sidebar.js +91 -0
- package/dist/layouts/shared/index.d.ts +56 -0
- package/dist/layouts/shared/index.d.ts.map +1 -0
- package/dist/layouts/shared/index.js +17 -0
- package/dist/layouts/shared/language-toggle.d.ts +5 -0
- package/dist/layouts/shared/language-toggle.d.ts.map +1 -0
- package/dist/layouts/shared/language-toggle.js +24 -0
- package/dist/layouts/shared/search-toggle.d.ts +11 -0
- package/dist/layouts/shared/search-toggle.d.ts.map +1 -0
- package/dist/layouts/shared/search-toggle.js +27 -0
- package/dist/layouts/shared/theme-toggle.d.ts +5 -0
- package/dist/layouts/shared/theme-toggle.d.ts.map +1 -0
- package/dist/layouts/shared/theme-toggle.js +38 -0
- package/dist/mdx.d.ts +33 -0
- package/dist/mdx.d.ts.map +1 -0
- package/dist/mdx.js +40 -0
- package/dist/mdx.server.d.ts +13 -0
- package/dist/mdx.server.d.ts.map +1 -0
- package/dist/mdx.server.js +15 -0
- package/dist/og.d.ts +2 -0
- package/dist/og.d.ts.map +1 -0
- package/dist/og.js +1 -0
- package/dist/page.d.ts +27 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +22 -0
- package/dist/provider/base.d.ts +40 -0
- package/dist/provider/base.d.ts.map +1 -0
- package/dist/provider/base.js +19 -0
- package/dist/provider/next.d.ts +14 -0
- package/dist/provider/next.d.ts.map +1 -0
- package/dist/provider/next.js +7 -0
- package/dist/provider/react-router.d.ts +14 -0
- package/dist/provider/react-router.d.ts.map +1 -0
- package/dist/provider/react-router.js +7 -0
- package/dist/provider/tanstack.d.ts +14 -0
- package/dist/provider/tanstack.d.ts.map +1 -0
- package/dist/provider/tanstack.js +7 -0
- package/dist/provider/waku.d.ts +14 -0
- package/dist/provider/waku.d.ts.map +1 -0
- package/dist/provider/waku.js +7 -0
- package/dist/style.css +3159 -0
- package/dist/utils/use-copy-button.d.ts +2 -0
- package/dist/utils/use-copy-button.d.ts.map +1 -0
- package/dist/utils/use-copy-button.js +1 -0
- package/dist/utils/use-footer-items.d.ts +2 -0
- package/dist/utils/use-footer-items.d.ts.map +1 -0
- package/dist/utils/use-footer-items.js +1 -0
- package/dist/utils/use-is-scroll-top.d.ts +2 -0
- package/dist/utils/use-is-scroll-top.d.ts.map +1 -0
- package/dist/utils/use-is-scroll-top.js +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../../../src/components/toc/clerk.tsx"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/components/toc/clerk';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/components/toc/default.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/components/toc/default';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toc/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/components/toc/index';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface ParameterNode {
|
|
3
|
+
name: string;
|
|
4
|
+
description: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface TypeNode {
|
|
7
|
+
/**
|
|
8
|
+
* Additional description of the field
|
|
9
|
+
*/
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* type signature (short)
|
|
13
|
+
*/
|
|
14
|
+
type: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* type signature (full)
|
|
17
|
+
*/
|
|
18
|
+
typeDescription?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Optional `href` for the type
|
|
21
|
+
*/
|
|
22
|
+
typeDescriptionLink?: string;
|
|
23
|
+
default?: ReactNode;
|
|
24
|
+
required?: boolean;
|
|
25
|
+
deprecated?: boolean;
|
|
26
|
+
parameters?: ParameterNode[];
|
|
27
|
+
returns?: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
export declare function TypeTable({ type }: {
|
|
30
|
+
type: Record<string, TypeNode>;
|
|
31
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=type-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-table.d.ts","sourceRoot":"","sources":["../../src/components/type-table.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAOjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAYD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,2CAYrE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronDown } from '@fumadocs/ui/icons';
|
|
4
|
+
import Link from 'fumadocs-core/link';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '../components/ui/collapsible.js';
|
|
9
|
+
const keyVariants = cva('text-fd-primary', {
|
|
10
|
+
variants: {
|
|
11
|
+
deprecated: {
|
|
12
|
+
true: 'line-through text-fd-primary/50',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const fieldVariants = cva('text-fd-muted-foreground not-prose pe-2');
|
|
17
|
+
export function TypeTable({ type }) {
|
|
18
|
+
return (_jsxs("div", { className: "@container flex flex-col p-1 bg-fd-card text-fd-card-foreground rounded-2xl border my-6 text-sm overflow-hidden", children: [_jsxs("div", { className: "flex font-medium items-center px-3 py-1 not-prose text-fd-muted-foreground", children: [_jsx("p", { className: "w-[25%]", children: "Prop" }), _jsx("p", { className: "@max-xl:hidden", children: "Type" })] }), Object.entries(type).map(([key, value]) => (_jsx(Item, { name: key, item: value }, key)))] }));
|
|
19
|
+
}
|
|
20
|
+
function Item({ name, item: { parameters = [], description, required = false, deprecated, typeDescription, default: defaultValue, type, typeDescriptionLink, returns, }, }) {
|
|
21
|
+
const [open, setOpen] = useState(false);
|
|
22
|
+
return (_jsxs(Collapsible, { open: open, onOpenChange: setOpen, className: cn('rounded-xl border overflow-hidden transition-all', open
|
|
23
|
+
? 'shadow-sm bg-fd-background not-last:mb-2'
|
|
24
|
+
: 'border-transparent'), children: [_jsxs(CollapsibleTrigger, { className: "relative flex flex-row items-center w-full group text-start px-3 py-2 not-prose hover:bg-fd-accent", children: [_jsxs("code", { className: cn(keyVariants({
|
|
25
|
+
deprecated,
|
|
26
|
+
className: 'min-w-fit w-[25%] font-medium pe-2',
|
|
27
|
+
})), children: [name, !required && '?'] }), typeDescriptionLink ? (_jsx(Link, { href: typeDescriptionLink, className: "underline @max-xl:hidden", children: type })) : (_jsx("span", { className: "@max-xl:hidden", children: type })), _jsx(ChevronDown, { className: "absolute end-2 size-4 text-fd-muted-foreground transition-transform group-data-[open]:rotate-180" })] }), _jsx(CollapsibleContent, { children: _jsxs("div", { className: "grid grid-cols-[1fr_3fr] gap-y-4 text-sm p-3 overflow-auto fd-scroll-container border-t", children: [_jsx("div", { className: "text-sm prose col-span-full prose-no-margin empty:hidden", children: description }), typeDescription && (_jsxs(_Fragment, { children: [_jsx("p", { className: cn(fieldVariants()), children: "Type" }), _jsx("p", { className: "my-auto not-prose", children: typeDescription })] })), defaultValue && (_jsxs(_Fragment, { children: [_jsx("p", { className: cn(fieldVariants()), children: "Default" }), _jsx("p", { className: "my-auto not-prose", children: defaultValue })] })), parameters.length > 0 && (_jsxs(_Fragment, { children: [_jsx("p", { className: cn(fieldVariants()), children: "Parameters" }), _jsx("div", { className: "flex flex-col gap-2", children: parameters.map((param) => (_jsxs("div", { className: "inline-flex items-center flex-wrap gap-1", children: [_jsxs("p", { className: "font-medium not-prose text-nowrap", children: [param.name, " -"] }), _jsx("div", { className: "text-sm prose prose-no-margin", children: param.description })] }, param.name))) })] })), returns && (_jsxs(_Fragment, { children: [_jsx("p", { className: cn(fieldVariants()), children: "Returns" }), _jsx("div", { className: "my-auto text-sm prose prose-no-margin", children: returns })] }))] }) })] }));
|
|
28
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Accordion as Primitive } from '@base-ui/react/accordion';
|
|
2
|
+
import { type ComponentProps } from 'react';
|
|
3
|
+
export declare function Accordion({ className, ...props }: ComponentProps<typeof Primitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function AccordionItem({ children, ...props }: ComponentProps<typeof Primitive.Item>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function AccordionHeader({ className, children, ...props }: ComponentProps<typeof Primitive.Header>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function AccordionTrigger({ className, children, ...props }: ComponentProps<typeof Primitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function AccordionContent({ className, children, ...props }: ComponentProps<typeof Primitive.Panel>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/ui/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,2CAYvC;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,2CAEvC;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,2CAczC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,OAAO,CAAC,2CAe1C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,2CAcxC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Accordion as Primitive } from '@base-ui/react/accordion';
|
|
4
|
+
import { ChevronRight } from '@fumadocs/ui/icons';
|
|
5
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
6
|
+
export function Accordion({ className, ...props }) {
|
|
7
|
+
return (_jsx(Primitive.Root, { className: (s) => cn('divide-y divide-fd-border overflow-hidden rounded-lg border bg-fd-card', typeof className === 'function' ? className(s) : className), ...props }));
|
|
8
|
+
}
|
|
9
|
+
export function AccordionItem({ children, ...props }) {
|
|
10
|
+
return _jsx(Primitive.Item, { ...props, children: children });
|
|
11
|
+
}
|
|
12
|
+
export function AccordionHeader({ className, children, ...props }) {
|
|
13
|
+
return (_jsx(Primitive.Header, { className: (s) => cn('scroll-m-24 not-prose flex flex-row items-center text-fd-card-foreground font-medium has-focus-visible:bg-fd-accent', typeof className === 'function' ? className(s) : className), ...props, children: children }));
|
|
14
|
+
}
|
|
15
|
+
export function AccordionTrigger({ className, children, ...props }) {
|
|
16
|
+
return (_jsxs(Primitive.Trigger, { className: (s) => cn('group flex flex-1 items-center gap-2 px-3 py-2.5 text-start focus-visible:outline-none', typeof className === 'function' ? className(s) : className), ...props, children: [_jsx(ChevronRight, { className: "size-4 shrink-0 text-fd-muted-foreground transition-transform duration-200 group-data-[panel-open]:rotate-90" }), children] }));
|
|
17
|
+
}
|
|
18
|
+
export function AccordionContent({ className, children, ...props }) {
|
|
19
|
+
return (_jsx(Primitive.Panel, { className: (s) => cn('h-(--accordion-panel-height) overflow-hidden transition-[height] ease-out data-[ending-style]:h-0 data-[starting-style]:h-0', typeof className === 'function' ? className(s) : className), ...props, children: children }));
|
|
20
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
export declare const buttonVariants: (props?: ({
|
|
3
|
+
variant?: "primary" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
4
|
+
color?: "primary" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
5
|
+
size?: "icon" | "sm" | "icon-sm" | "icon-xs" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export type ButtonProps = VariantProps<typeof buttonVariants>;
|
|
8
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAUlE,eAAO,MAAM,cAAc;;;;8EAe1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
const variants = {
|
|
3
|
+
primary: 'bg-fd-primary text-fd-primary-foreground hover:bg-fd-primary/80',
|
|
4
|
+
outline: 'border hover:bg-fd-accent hover:text-fd-accent-foreground',
|
|
5
|
+
ghost: 'hover:bg-fd-accent hover:text-fd-accent-foreground',
|
|
6
|
+
secondary: 'border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground',
|
|
7
|
+
};
|
|
8
|
+
export const buttonVariants = cva('inline-flex items-center justify-center rounded-md p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring', {
|
|
9
|
+
variants: {
|
|
10
|
+
variant: variants,
|
|
11
|
+
// fumadocs use `color` instead of `variant`
|
|
12
|
+
color: variants,
|
|
13
|
+
size: {
|
|
14
|
+
sm: 'gap-1 px-2 py-1.5 text-xs',
|
|
15
|
+
icon: 'p-1.5 [&_svg]:size-5',
|
|
16
|
+
'icon-sm': 'p-1.5 [&_svg]:size-4.5',
|
|
17
|
+
'icon-xs': 'p-1 [&_svg]:size-4',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Collapsible as Primitive } from '@base-ui/react/collapsible';
|
|
2
|
+
import type { ComponentProps } from 'react';
|
|
3
|
+
export declare const Collapsible: import("react").ForwardRefExoticComponent<import("@base-ui/react").CollapsibleRootProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export declare const CollapsibleTrigger: import("react").ForwardRefExoticComponent<import("@base-ui/react").CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
export declare function CollapsibleContent({ children, className, ...props }: ComponentProps<typeof Primitive.Panel>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export type CollapsibleProps = Primitive.Root.Props;
|
|
7
|
+
export type CollapsibleContentProps = Primitive.Panel.Props;
|
|
8
|
+
export type CollapsibleTriggerProps = Primitive.Trigger.Props;
|
|
9
|
+
//# sourceMappingURL=collapsible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../../src/components/ui/collapsible.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,eAAO,MAAM,WAAW,0IAAiB,CAAC;AAE1C,eAAO,MAAM,kBAAkB,gJAAoB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,2CAcxC;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5D,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Collapsible as Primitive } from '@base-ui/react/collapsible';
|
|
4
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
5
|
+
export const Collapsible = Primitive.Root;
|
|
6
|
+
export const CollapsibleTrigger = Primitive.Trigger;
|
|
7
|
+
export function CollapsibleContent({ children, className, ...props }) {
|
|
8
|
+
return (_jsx(Primitive.Panel, { ...props, className: (s) => cn("overflow-hidden [&[hidden]:not([hidden='until-found'])]:hidden h-(--collapsible-panel-height) transition-[height] data-[starting-style]:h-0 data-[ending-style]:h-0", typeof className === 'function' ? className(s) : className), children: children }));
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { NavigationMenu as Primitive } from '@base-ui/react/navigation-menu';
|
|
3
|
+
export type NavigationMenuContentProps = Primitive.Content.Props;
|
|
4
|
+
export type NavigationMenuTriggerProps = Primitive.Trigger.Props;
|
|
5
|
+
declare const NavigationMenuRoot: React.ForwardRefExoticComponent<import("@base-ui/react").NavigationMenuRootProps & React.RefAttributes<HTMLElement>>;
|
|
6
|
+
declare const NavigationMenuList: React.ForwardRefExoticComponent<import("@base-ui/react").NavigationMenuListProps & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const NavigationMenuItem: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").NavigationMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
declare const NavigationMenuTrigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").NavigationMenuTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
9
|
+
declare const NavigationMenuContent: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").NavigationMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
declare const NavigationMenuLink: React.ForwardRefExoticComponent<import("@base-ui/react").NavigationMenuLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
11
|
+
export { NavigationMenuRoot, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, };
|
|
12
|
+
//# sourceMappingURL=navigation-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/navigation-menu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG7E,MAAM,MAAM,0BAA0B,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AACjE,MAAM,MAAM,0BAA0B,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAEjE,QAAA,MAAM,kBAAkB,sHAAiB,CAAC;AAE1C,QAAA,MAAM,kBAAkB,yHAAiB,CAAC;AAE1C,QAAA,MAAM,kBAAkB,4KAgBtB,CAAC;AAIH,QAAA,MAAM,qBAAqB,qLAOzB,CAAC;AAGH,QAAA,MAAM,qBAAqB,+KAoBzB,CAAC;AAGH,QAAA,MAAM,kBAAkB,4HAAiB,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { NavigationMenu as Primitive } from '@base-ui/react/navigation-menu';
|
|
5
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
6
|
+
const NavigationMenuRoot = Primitive.Root;
|
|
7
|
+
const NavigationMenuList = Primitive.List;
|
|
8
|
+
const NavigationMenuItem = React.forwardRef(({ className, children, ...props }, ref) => (_jsx(Primitive.Item, { ref: ref, className: (s) => cn('list-none', typeof className === 'function' ? className(s) : className), ...props, children: children })));
|
|
9
|
+
NavigationMenuItem.displayName = Primitive.Item.displayName;
|
|
10
|
+
const NavigationMenuTrigger = React.forwardRef(({ children, ...props }, ref) => (_jsx(Primitive.Trigger, { ref: ref, ...props, children: children })));
|
|
11
|
+
NavigationMenuTrigger.displayName = Primitive.Trigger.displayName;
|
|
12
|
+
const NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(Primitive.Content, { ref: ref, className: (s) => cn('size-full p-4', 'transition-[opacity,transform,translate] duration-(--duration) ease-(--easing)', 'data-[starting-style]:opacity-0 data-[ending-style]:opacity-0', 'data-[starting-style]:data-[activation-direction=left]:-translate-x-1/2', 'data-[starting-style]:data-[activation-direction=right]:translate-x-1/2', 'data-[ending-style]:data-[activation-direction=left]:translate-x-1/2', 'data-[ending-style]:data-[activation-direction=right]:-translate-x-1/2', typeof className === 'function' ? className(s) : className), ...props })));
|
|
13
|
+
NavigationMenuContent.displayName = Primitive.Content.displayName;
|
|
14
|
+
const NavigationMenuLink = Primitive.Link;
|
|
15
|
+
export { NavigationMenuRoot, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Popover as Primitive } from '@base-ui/react/popover';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare const Popover: typeof Primitive.Root;
|
|
4
|
+
declare const PopoverTrigger: Primitive.Trigger;
|
|
5
|
+
declare const PopoverContent: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").PopoverPopupProps & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<import("@base-ui/react").PopoverPositionerProps, "align" | "sideOffset"> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const PopoverClose: React.ForwardRefExoticComponent<import("@base-ui/react").PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverClose };
|
|
8
|
+
//# sourceMappingURL=popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/components/ui/popover.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,OAAO,uBAAiB,CAAC;AAE/B,QAAA,MAAM,cAAc,mBAAoB,CAAC;AAEzC,QAAA,MAAM,cAAc,sPAwBlB,CAAC;AAGH,QAAA,MAAM,YAAY,sHAAkB,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Popover as Primitive } from '@base-ui/react/popover';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
6
|
+
const Popover = Primitive.Root;
|
|
7
|
+
const PopoverTrigger = Primitive.Trigger;
|
|
8
|
+
const PopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (_jsx(Primitive.Portal, { children: _jsx(Primitive.Positioner, { align: align, side: "bottom", sideOffset: sideOffset, className: "z-50", children: _jsx(Primitive.Popup, { ref: ref, className: (s) => cn('z-50 origin-(--transform-origin) overflow-y-auto max-h-(--available-height) min-w-[240px] max-w-[98vw] rounded-xl border bg-fd-popover/60 backdrop-blur-lg p-2 text-sm text-fd-popover-foreground shadow-lg focus-visible:outline-none data-[closed]:animate-fd-popover-out data-[open]:animate-fd-popover-in', typeof className === 'function' ? className(s) : className), ...props }) }) })));
|
|
9
|
+
PopoverContent.displayName = Primitive.Popup.displayName;
|
|
10
|
+
const PopoverClose = Primitive.Close;
|
|
11
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverClose };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ScrollArea as Primitive } from '@base-ui/react/scroll-area';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare const ScrollArea: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ScrollAreaRootProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const ScrollViewport: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ScrollAreaViewportProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const ScrollBar: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export { ScrollArea, ScrollBar, ScrollViewport };
|
|
7
|
+
export type ScrollAreaProps = Primitive.Root.Props;
|
|
8
|
+
//# sourceMappingURL=scroll-area.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scroll-area.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,UAAU,wKAkBd,CAAC;AAIH,QAAA,MAAM,cAAc,4KAgBlB,CAAC;AAIH,QAAA,MAAM,SAAS,6KAoBb,CAAC;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ScrollArea as Primitive } from '@base-ui/react/scroll-area';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
5
|
+
const ScrollArea = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(Primitive.Root, { ref: ref, className: (s) => cn('overflow-hidden', typeof className === 'function' ? className(s) : className), ...props, children: [children, _jsx(Primitive.Corner, {}), _jsx(ScrollBar, { orientation: "vertical" })] })));
|
|
6
|
+
ScrollArea.displayName = Primitive.Root.displayName;
|
|
7
|
+
const ScrollViewport = React.forwardRef(({ className, children, ...props }, ref) => (_jsx(Primitive.Viewport, { ref: ref, className: (s) => cn('size-full rounded-[inherit]', typeof className === 'function' ? className(s) : className), ...props, children: children })));
|
|
8
|
+
ScrollViewport.displayName = Primitive.Viewport.displayName;
|
|
9
|
+
const ScrollBar = React.forwardRef(({ className, orientation = 'vertical', ...props }, ref) => (_jsx(Primitive.Scrollbar, { ref: ref, orientation: orientation, className: (s) => cn('flex select-none transition-opacity', !s.hovering && 'opacity-0', orientation === 'vertical' && 'h-full w-1.5', orientation === 'horizontal' && 'h-1.5 flex-col', typeof className === 'function' ? className(s) : className), ...props, children: _jsx(Primitive.Thumb, { className: "relative flex-1 rounded-full bg-fd-border" }) })));
|
|
10
|
+
ScrollBar.displayName = Primitive.Scrollbar.displayName;
|
|
11
|
+
export { ScrollArea, ScrollBar, ScrollViewport };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ComponentProps } from 'react';
|
|
2
|
+
import { Tabs as Primitive } from '@base-ui/react/tabs';
|
|
3
|
+
export interface TabsProps extends ComponentProps<typeof Primitive.Root> {
|
|
4
|
+
/**
|
|
5
|
+
* Identifier for Sharing value of tabs
|
|
6
|
+
*/
|
|
7
|
+
groupId?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Enable persistent
|
|
10
|
+
*/
|
|
11
|
+
persist?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* If true, updates the URL hash based on the tab's id
|
|
14
|
+
*/
|
|
15
|
+
updateAnchor?: boolean;
|
|
16
|
+
onValueChange?: (value: string) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const TabsList: import("react").ForwardRefExoticComponent<import("@base-ui/react").TabsListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export declare const TabsTrigger: import("react").ForwardRefExoticComponent<import("@base-ui/react").TabsTabProps & import("react").RefAttributes<Element>>;
|
|
20
|
+
export declare function Tabs({ ref, groupId, persist, updateAnchor, defaultValue, value: _value, onValueChange: _onValueChange, ...props }: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function TabsContent({ value, ...props }: ComponentProps<typeof Primitive.Panel>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAQpB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMxD,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC;IACtE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAYD,eAAO,MAAM,QAAQ,mIAAiB,CAAC;AAEvC,eAAO,MAAM,WAAW,2HAAgB,CAAC;AAEzC,wBAAgB,IAAI,CAAC,EACnB,GAAG,EACH,OAAO,EACP,OAAe,EACf,YAAoB,EACpB,YAAY,EACZ,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,cAAc,EAC7B,GAAG,KAAK,EACT,EAAE,SAAS,2CAqEX;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,2CAYxC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, use, useEffectEvent, useLayoutEffect, useMemo, useRef, useState, } from 'react';
|
|
4
|
+
import { Tabs as Primitive } from '@base-ui/react/tabs';
|
|
5
|
+
import { mergeRefs } from '@fumadocs/ui/merge-refs';
|
|
6
|
+
const listeners = new Map();
|
|
7
|
+
const TabsContext = createContext(null);
|
|
8
|
+
function useTabContext() {
|
|
9
|
+
const ctx = use(TabsContext);
|
|
10
|
+
if (!ctx)
|
|
11
|
+
throw new Error('You must wrap your component in <Tabs>');
|
|
12
|
+
return ctx;
|
|
13
|
+
}
|
|
14
|
+
export const TabsList = Primitive.List;
|
|
15
|
+
export const TabsTrigger = Primitive.Tab;
|
|
16
|
+
export function Tabs({ ref, groupId, persist = false, updateAnchor = false, defaultValue, value: _value, onValueChange: _onValueChange, ...props }) {
|
|
17
|
+
const tabsRef = useRef(null);
|
|
18
|
+
const valueToIdMap = useMemo(() => new Map(), []);
|
|
19
|
+
const [value, setValue] = _value === undefined
|
|
20
|
+
? // eslint-disable-next-line react-hooks/rules-of-hooks -- not supposed to change controlled/uncontrolled
|
|
21
|
+
useState(defaultValue)
|
|
22
|
+
: // eslint-disable-next-line react-hooks/rules-of-hooks -- not supposed to change controlled/uncontrolled
|
|
23
|
+
[_value, useEffectEvent((v) => _onValueChange?.(v))];
|
|
24
|
+
useLayoutEffect(() => {
|
|
25
|
+
if (!groupId)
|
|
26
|
+
return;
|
|
27
|
+
let previous = sessionStorage.getItem(groupId);
|
|
28
|
+
if (persist)
|
|
29
|
+
previous ?? (previous = localStorage.getItem(groupId));
|
|
30
|
+
if (previous)
|
|
31
|
+
setValue(previous);
|
|
32
|
+
const groupListeners = listeners.get(groupId) ?? new Set();
|
|
33
|
+
groupListeners.add(setValue);
|
|
34
|
+
listeners.set(groupId, groupListeners);
|
|
35
|
+
return () => {
|
|
36
|
+
groupListeners.delete(setValue);
|
|
37
|
+
};
|
|
38
|
+
}, [groupId, persist, setValue]);
|
|
39
|
+
useLayoutEffect(() => {
|
|
40
|
+
const hash = window.location.hash.slice(1);
|
|
41
|
+
if (!hash)
|
|
42
|
+
return;
|
|
43
|
+
for (const [value, id] of valueToIdMap.entries()) {
|
|
44
|
+
if (id === hash) {
|
|
45
|
+
setValue(value);
|
|
46
|
+
tabsRef.current?.scrollIntoView();
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, [setValue, valueToIdMap]);
|
|
51
|
+
return (_jsx(Primitive.Root, { ref: mergeRefs(ref, tabsRef), value: value, onValueChange: (v) => {
|
|
52
|
+
if (updateAnchor) {
|
|
53
|
+
const id = valueToIdMap.get(v);
|
|
54
|
+
if (id) {
|
|
55
|
+
window.history.replaceState(null, '', `#${id}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (groupId) {
|
|
59
|
+
const groupListeners = listeners.get(groupId);
|
|
60
|
+
if (groupListeners) {
|
|
61
|
+
for (const listener of groupListeners)
|
|
62
|
+
listener(v);
|
|
63
|
+
}
|
|
64
|
+
sessionStorage.setItem(groupId, v);
|
|
65
|
+
if (persist)
|
|
66
|
+
localStorage.setItem(groupId, v);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
setValue(v);
|
|
70
|
+
}
|
|
71
|
+
}, ...props, children: _jsx(TabsContext, { value: useMemo(() => ({ valueToIdMap }), [valueToIdMap]), children: props.children }) }));
|
|
72
|
+
}
|
|
73
|
+
export function TabsContent({ value, ...props }) {
|
|
74
|
+
const { valueToIdMap } = useTabContext();
|
|
75
|
+
if (props.id) {
|
|
76
|
+
valueToIdMap.set(value, props.id);
|
|
77
|
+
}
|
|
78
|
+
return (_jsx(Primitive.Panel, { value: value, ...props, children: props.children }));
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/contexts/i18n.tsx"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/contexts/i18n';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/contexts/search.tsx"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/contexts/search';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/contexts/tree.tsx"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/contexts/tree';
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
package/dist/i18n.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/i18n';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
2
|
+
import type { SidebarTab } from '../../components/sidebar/tabs/index.js';
|
|
3
|
+
export declare const LayoutContext: import("react").Context<{
|
|
4
|
+
isNavTransparent: boolean;
|
|
5
|
+
} | null>;
|
|
6
|
+
export declare function LayoutContextProvider({ navTransparentMode, children, }: {
|
|
7
|
+
navTransparentMode?: 'always' | 'top' | 'none';
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function LayoutHeader(props: ComponentProps<'header'>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function LayoutBody({ className, style, children, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function LayoutTabs({ options, ...props }: ComponentProps<'div'> & {
|
|
13
|
+
options: SidebarTab[];
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/client.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,eAAO,MAAM,aAAa;sBACN,OAAO;SACZ,CAAC;AAEhB,wBAAgB,qBAAqB,CAAC,EACpC,kBAA2B,EAC3B,QAAQ,GACT,EAAE;IACD,kBAAkB,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAkBA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,2CAQ3D;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,2CA8BvB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,2CA6BA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, use, useMemo, } from 'react';
|
|
4
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
5
|
+
import { useSidebar } from '../../components/sidebar/base.js';
|
|
6
|
+
import { usePathname } from 'fumadocs-core/framework';
|
|
7
|
+
import { isTabActive } from '../../components/sidebar/tabs/dropdown.js';
|
|
8
|
+
import Link from 'fumadocs-core/link';
|
|
9
|
+
import { useIsScrollTop } from '@fumadocs/ui/hooks/use-is-scroll-top';
|
|
10
|
+
export const LayoutContext = createContext(null);
|
|
11
|
+
export function LayoutContextProvider({ navTransparentMode = 'none', children, }) {
|
|
12
|
+
const isTop = useIsScrollTop({ enabled: navTransparentMode === 'top' }) ?? true;
|
|
13
|
+
const isNavTransparent = navTransparentMode === 'top' ? isTop : navTransparentMode === 'always';
|
|
14
|
+
return (_jsx(LayoutContext, { value: useMemo(() => ({
|
|
15
|
+
isNavTransparent,
|
|
16
|
+
}), [isNavTransparent]), children: children }));
|
|
17
|
+
}
|
|
18
|
+
export function LayoutHeader(props) {
|
|
19
|
+
const { isNavTransparent } = use(LayoutContext);
|
|
20
|
+
return (_jsx("header", { "data-transparent": isNavTransparent, ...props, children: props.children }));
|
|
21
|
+
}
|
|
22
|
+
export function LayoutBody({ className, style, children, ...props }) {
|
|
23
|
+
const { collapsed } = useSidebar();
|
|
24
|
+
return (_jsx("div", { id: "nd-docs-layout", 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), "data-sidebar-collapsed": collapsed, style: {
|
|
25
|
+
gridTemplate: `"sidebar header toc"
|
|
26
|
+
"sidebar toc-popover toc"
|
|
27
|
+
"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
|
+
'--fd-docs-row-1': 'var(--fd-banner-height, 0px)',
|
|
29
|
+
'--fd-docs-row-2': 'calc(var(--fd-docs-row-1) + var(--fd-header-height))',
|
|
30
|
+
'--fd-docs-row-3': 'calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height))',
|
|
31
|
+
'--fd-sidebar-col': collapsed ? '0px' : 'var(--fd-sidebar-width)',
|
|
32
|
+
...style,
|
|
33
|
+
}, ...props, children: children }));
|
|
34
|
+
}
|
|
35
|
+
export function LayoutTabs({ options, ...props }) {
|
|
36
|
+
const pathname = usePathname();
|
|
37
|
+
const selected = useMemo(() => {
|
|
38
|
+
return options.findLast((option) => isTabActive(option, pathname));
|
|
39
|
+
}, [options, pathname]);
|
|
40
|
+
return (_jsx("div", { ...props, className: cn('flex flex-row items-end gap-6 overflow-auto [grid-area:main]', props.className), children: options.map((option, i) => (_jsx(Link, { href: option.url, 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'), children: option.title }, i))) }));
|
|
41
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type * as PageTree from 'fumadocs-core/page-tree';
|
|
2
|
+
import { type ComponentProps, type HTMLAttributes, type ReactNode } from 'react';
|
|
3
|
+
import { Sidebar } from './sidebar.js';
|
|
4
|
+
import { type BaseLayoutProps } from '../../layouts/shared/index.js';
|
|
5
|
+
import { type GetSidebarTabsOptions } from '../../components/sidebar/tabs/index.js';
|
|
6
|
+
import type { SidebarPageTreeComponents } from '../../components/sidebar/page-tree.js';
|
|
7
|
+
import { type SidebarTabWithProps } from '../../components/sidebar/tabs/dropdown.js';
|
|
8
|
+
export interface DocsLayoutProps extends BaseLayoutProps {
|
|
9
|
+
tree: PageTree.Root;
|
|
10
|
+
sidebar?: SidebarOptions;
|
|
11
|
+
tabMode?: 'top' | 'auto';
|
|
12
|
+
/**
|
|
13
|
+
* Props for the `div` container
|
|
14
|
+
*/
|
|
15
|
+
containerProps?: HTMLAttributes<HTMLDivElement>;
|
|
16
|
+
}
|
|
17
|
+
interface SidebarOptions extends ComponentProps<'aside'>, Pick<ComponentProps<typeof Sidebar>, 'defaultOpenLevel' | 'prefetch'> {
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
component?: ReactNode;
|
|
20
|
+
components?: Partial<SidebarPageTreeComponents>;
|
|
21
|
+
/**
|
|
22
|
+
* Root Toggle options
|
|
23
|
+
*/
|
|
24
|
+
tabs?: SidebarTabWithProps[] | GetSidebarTabsOptions | false;
|
|
25
|
+
banner?: ReactNode;
|
|
26
|
+
footer?: ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Support collapsing the sidebar on desktop mode
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue true
|
|
31
|
+
*/
|
|
32
|
+
collapsible?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function DocsLayout({ nav: { transparentMode, ...nav }, sidebar: { tabs: sidebarTabs, enabled: sidebarEnabled, defaultOpenLevel, prefetch, ...sidebarProps }, searchToggle, themeSwitch, tabMode, i18n, children, tree, ...props }: DocsLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,OAAO,EAQR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAmB1E,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,UAAU,cACR,SACE,cAAc,CAAC,OAAO,CAAC,EACvB,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEhD;;OAEG;IACH,IAAI,CAAC,EAAE,mBAAmB,EAAE,GAAG,qBAAqB,GAAG,KAAK,CAAC;IAE7D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,GAAG,EAAO,EACrC,OAAO,EAAE,EACP,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAqB,EAC9B,gBAAgB,EAChB,QAAQ,EACR,GAAG,YAAY,EACX,EACN,YAAiB,EACjB,WAAgB,EAChB,OAAgB,EAChB,IAAY,EACZ,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,eAAe,2CA0NjB"}
|