fumadocs-ui 15.0.11 → 15.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/css/preset.css CHANGED
@@ -37,16 +37,16 @@
37
37
  }
38
38
  }
39
39
 
40
- @layer utilities {
41
- .fd-steps {
42
- counter-reset: step;
43
- border-left-width: 1px;
44
- margin-left: 1rem;
45
- padding-left: 1.75rem;
46
- position: relative;
47
- }
40
+ @utility fd-steps {
41
+ counter-reset: step;
42
+ border-left-width: 1px;
43
+ margin-left: 1rem;
44
+ padding-left: 1.75rem;
45
+ position: relative;
46
+ }
48
47
 
49
- .fd-step:before {
48
+ @utility fd-step {
49
+ &:before {
50
50
  background-color: var(--color-fd-secondary);
51
51
  color: var(--color-fd-secondary-foreground);
52
52
  content: counter(step);
@@ -62,12 +62,14 @@
62
62
  position: absolute;
63
63
  left: -1rem;
64
64
  }
65
+ }
65
66
 
66
- .prose-no-margin > :first-child {
67
+ @utility prose-no-margin {
68
+ & > :first-child {
67
69
  margin-top: 0;
68
70
  }
69
71
 
70
- .prose-no-margin > :last-child {
72
+ & > :last-child {
71
73
  margin-bottom: 0;
72
74
  }
73
75
  }
@@ -3,5 +3,5 @@ export declare function DynamicCodeBlock({ lang, code, options, }: {
3
3
  lang: string;
4
4
  code: string;
5
5
  options?: Omit<HighlightOptions, 'lang'>;
6
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): import("react").ReactNode;
7
7
  //# sourceMappingURL=dynamic-codeblock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-codeblock.d.ts","sourceRoot":"","sources":["../../src/components/dynamic-codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAe7D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,OAAO,GACR,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;CAC1C,2CAuBA"}
1
+ {"version":3,"file":"dynamic-codeblock.d.ts","sourceRoot":"","sources":["../../src/components/dynamic-codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAc7D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,OAAO,GACR,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;CAC1C,6BAUA"}
@@ -1,8 +1,7 @@
1
1
  'use client';
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { CodeBlock, Pre } from '../components/codeblock.js';
4
- import { PrerenderScript, useShiki } from 'fumadocs-core/utils/use-shiki';
5
- import { useId } from 'react';
4
+ import { useShiki } from 'fumadocs-core/highlight/client';
6
5
  import { cn } from '../utils/cn.js';
7
6
  const components = {
8
7
  pre(props) {
@@ -10,16 +9,13 @@ const components = {
10
9
  },
11
10
  };
12
11
  export function DynamicCodeBlock({ lang, code, options, }) {
13
- const scriptKey = useId();
14
- const shikiOptions = {
12
+ return useShiki(code, {
15
13
  lang,
16
- scriptKey,
17
14
  ...options,
18
15
  components: {
19
16
  ...components,
20
17
  ...options?.components,
21
18
  },
22
- };
23
- const children = useShiki(code, shikiOptions);
24
- return (_jsxs(_Fragment, { children: [_jsx(PrerenderScript, { scriptKey: scriptKey, code: code, options: shikiOptions }), children] }));
19
+ withPrerenderScript: true,
20
+ });
25
21
  }
@@ -0,0 +1,7 @@
1
+ import { type AnchorHTMLAttributes } from 'react';
2
+ export declare function GithubInfo({ repo, owner, token, ...props }: AnchorHTMLAttributes<HTMLAnchorElement> & {
3
+ owner: string;
4
+ repo: string;
5
+ token?: string;
6
+ }): Promise<import("react/jsx-runtime").JSX.Element>;
7
+ //# sourceMappingURL=github-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-info.d.ts","sourceRoot":"","sources":["../../src/components/github-info.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAsClD,wBAAsB,UAAU,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,oDA2BA"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Star } from 'lucide-react';
3
+ import { cn } from '../utils/cn.js';
4
+ async function getRepoStarsAndForks(owner, repo, token) {
5
+ const endpoint = `https://api.github.com/repos/${owner}/${repo}`;
6
+ const headers = new Headers({
7
+ 'Content-Type': 'application/json',
8
+ });
9
+ if (token)
10
+ headers.set('Authorization', `Bearer ${token}`);
11
+ const response = await fetch(endpoint, {
12
+ headers,
13
+ next: {
14
+ revalidate: 60,
15
+ },
16
+ });
17
+ if (!response.ok) {
18
+ const message = await response.text();
19
+ throw new Error(`Failed to fetch repository data: ${message}`);
20
+ }
21
+ const data = await response.json();
22
+ return {
23
+ stars: data.stargazers_count,
24
+ forks: data.forks_count,
25
+ };
26
+ }
27
+ export async function GithubInfo({ repo, owner, token, ...props }) {
28
+ const { stars } = await getRepoStarsAndForks(owner, repo, token);
29
+ return (_jsxs("a", { href: `https://github.com/${owner}/${repo}`, rel: "noreferrer noopener", target: "_blank", ...props, className: cn('flex flex-col gap-1.5 p-2 rounded-lg text-sm text-fd-foreground/80 transition-colors lg:flex-row lg:items-center hover:text-fd-accent-foreground hover:bg-fd-accent', props.className), children: [_jsxs("p", { className: "flex items-center gap-2 truncate", children: [_jsxs("svg", { fill: "currentColor", viewBox: "0 0 24 24", className: "size-3.5", children: [_jsx("title", { children: "GitHub" }), _jsx("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" })] }), owner, "/", repo] }), _jsxs("p", { className: "flex text-xs items-center gap-1 text-fd-muted-foreground", children: [_jsx(Star, { className: "size-3" }), stars] })] }));
30
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUpD,eAAO,MAAM,QAAQ,EAAE,QA8EtB,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUpD,eAAO,MAAM,QAAQ,EAAE,QAmFtB,CAAC"}
@@ -52,6 +52,11 @@ export const registry = {
52
52
  mapImportPath: contextsMap,
53
53
  },
54
54
  { name: 'accordion', files: ['accordion.tsx'] },
55
+ {
56
+ name: 'github-info',
57
+ files: ['github-info.tsx'],
58
+ description: 'A card to display GitHub repo info',
59
+ },
55
60
  { name: 'banner', files: ['banner.tsx'] },
56
61
  { name: 'callout', files: ['callout.tsx'] },
57
62
  { name: 'card', files: ['card.tsx'] },
@@ -14,6 +14,7 @@ interface ObjectType {
14
14
  */
15
15
  typeDescriptionLink?: string;
16
16
  default?: string;
17
+ required?: boolean;
17
18
  }
18
19
  export declare function TypeTable({ type }: {
19
20
  type: Record<string, ObjectType>;
@@ -1 +1 @@
1
- {"version":3,"file":"type-table.d.ts","sourceRoot":"","sources":["../../src/components/type-table.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAWrE;AAED,UAAU,UAAU;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,2CA8CvE"}
1
+ {"version":3,"file":"type-table.d.ts","sourceRoot":"","sources":["../../src/components/type-table.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAWrE;AAED,UAAU,UAAU;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,2CAiDvE"}
@@ -15,5 +15,5 @@ const code = cva('rounded-md bg-fd-secondary p-1 text-fd-secondary-foreground',
15
15
  },
16
16
  });
17
17
  export function TypeTable({ type }) {
18
- return (_jsx("div", { className: "prose my-6 overflow-auto prose-no-margin", children: _jsxs("table", { className: "whitespace-nowrap text-sm text-fd-muted-foreground", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { className: "w-[45%]", children: "Prop" }), _jsx("th", { className: "w-[30%]", children: "Type" }), _jsx("th", { className: "w-1/4", children: "Default" })] }) }), _jsx("tbody", { children: Object.entries(type).map(([key, value]) => (_jsxs("tr", { children: [_jsx("td", { children: _jsxs("div", { className: field(), children: [_jsx("code", { className: cn(code({ color: 'primary' })), children: key }), value.description ? _jsx(Info, { children: value.description }) : null] }) }), _jsx("td", { children: _jsxs("div", { className: field(), children: [_jsx("code", { className: code(), children: value.type }), value.typeDescription ? (_jsx(Info, { children: value.typeDescription })) : null, value.typeDescriptionLink ? (_jsx(Link, { href: value.typeDescriptionLink, children: _jsx(InfoIcon, { className: "size-4" }) })) : null] }) }), _jsx("td", { children: value.default ? (_jsx("code", { className: code(), children: value.default })) : (_jsx("span", { children: "-" })) })] }, key))) })] }) }));
18
+ return (_jsx("div", { className: "prose my-6 overflow-auto prose-no-margin", children: _jsxs("table", { className: "whitespace-nowrap text-sm text-fd-muted-foreground", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { className: "w-[45%]", children: "Prop" }), _jsx("th", { className: "w-[30%]", children: "Type" }), _jsx("th", { className: "w-1/4", children: "Default" })] }) }), _jsx("tbody", { children: Object.entries(type).map(([key, value]) => (_jsxs("tr", { children: [_jsx("td", { children: _jsxs("div", { className: field(), children: [_jsxs("code", { className: cn(code({ color: 'primary' })), children: [key, !value.required && '?'] }), value.description ? _jsx(Info, { children: value.description }) : null] }) }), _jsx("td", { children: _jsxs("div", { className: field(), children: [_jsx("code", { className: code(), children: value.type }), value.typeDescription ? (_jsx(Info, { children: value.typeDescription })) : null, value.typeDescriptionLink ? (_jsx(Link, { href: value.typeDescriptionLink, children: _jsx(InfoIcon, { className: "size-4" }) })) : null] }) }), _jsx("td", { children: value.default ? (_jsx("code", { className: code(), children: value.default })) : (_jsx("span", { children: "-" })) })] }, key))) })] }) }));
19
19
  }
@@ -1,12 +1,13 @@
1
1
  import type { PageTree } from 'fumadocs-core/server';
2
2
  import { type ReactNode } from 'react';
3
+ type MakeRequired<O, K extends keyof O> = Omit<O, K> & Pick<Required<O>, K>;
3
4
  interface TreeContextType {
4
- root: PageTree.Root | PageTree.Folder;
5
+ root: MakeRequired<PageTree.Root | PageTree.Folder, '$id'>;
5
6
  }
6
7
  export declare function TreeContextProvider({ children, tree, }: {
7
8
  tree: PageTree.Root;
8
9
  children: ReactNode;
9
- }): ReactNode;
10
+ }): import("react/jsx-runtime").JSX.Element;
10
11
  export declare function useTreePath(): PageTree.Node[];
11
12
  export declare function useTreeContext(): TreeContextType;
12
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/contexts/tree.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAA6B,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAG3E,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;CACvC;AAKD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,IAAI,GACL,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,SAAS,CAeZ;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE,CAE7C;AAED,wBAAgB,cAAc,IAAI,eAAe,CAMhD"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/contexts/tree.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAGf,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5E,UAAU,eAAe;IACvB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC5D;AAKD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,IAAI,GACL,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAmBA;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE,CAE7C;AAED,wBAAgB,cAAc,IAAI,eAAe,CAMhD"}
@@ -1,16 +1,17 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { usePathname } from 'next/navigation';
4
- import { createContext, useContext, useMemo } from 'react';
4
+ import { createContext, useContext, useMemo, useRef, } from 'react';
5
5
  import { searchPath } from 'fumadocs-core/breadcrumb';
6
6
  const TreeContext = createContext(null);
7
7
  const PathContext = createContext([]);
8
8
  export function TreeContextProvider({ children, tree, }) {
9
+ const nextIdRef = useRef(0);
9
10
  const pathname = usePathname();
10
11
  const path = useMemo(() => searchPath(tree.children, pathname) ?? [], [pathname, tree]);
11
- const root = (path.findLast((item) => item.type === 'folder' && item.root) ??
12
- tree);
13
- return (_jsx(TreeContext.Provider, { value: useMemo(() => ({ root }), [root]), children: _jsx(PathContext.Provider, { value: path, children: children }) }));
12
+ const root = path.findLast((item) => item.type === 'folder' && item.root) ?? tree;
13
+ root.$id ?? (root.$id = String(nextIdRef.current++));
14
+ return (_jsx(TreeContext.Provider, { value: useMemo(() => ({ root: root }), [root]), children: _jsx(PathContext.Provider, { value: path, children: children }) }));
14
15
  }
15
16
  export function useTreePath() {
16
17
  return useContext(PathContext);
@@ -43,7 +43,7 @@ export interface SidebarComponents {
43
43
  export declare function SidebarLinkItem({ item, ...props }: {
44
44
  item: LinkItemType;
45
45
  className?: string;
46
- }): 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;
46
+ }): import("react/jsx-runtime").JSX.Element;
47
47
  export declare function checkPageTree(passed: unknown): void;
48
48
  export declare function getSidebarTabsFromOptions(options: SidebarOptions['tabs'], tree: PageTree.Root): Option[] | undefined;
49
49
  //# 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,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,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC1E,SAAS,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE;IACD,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2UAsDA;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"}
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,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC1E,SAAS,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE;IACD,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAsDA;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"}
@@ -16,7 +16,7 @@ export function SidebarLinkItem({ item, ...props }) {
16
16
  }), 'gap-1.5 [&_svg]:size-4', props.className), children: [item.icon, item.text] }));
17
17
  }
18
18
  if (item.type === 'custom')
19
- return item.children;
19
+ return _jsx("div", { ...props, children: item.children });
20
20
  return (_jsx(SidebarItem, { href: item.url, icon: item.icon, external: item.external, ...props, children: item.text }));
21
21
  }
22
22
  export function checkPageTree(passed) {
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EAGzB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC/D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2BD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,2CAqDrD;AAED,wBAAgB,OAAO,CAAC,EACtB,gBAAoB,EACpB,QAAe,EACf,KAAK,EACL,GAAG,KAAK,EACT,EAAE,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAAE,2CAwC3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CASlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CAYlE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,2CAarD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,oBAAoB,CAAC,2CAkB3E;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,SAAS,GAAG;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,2CAsBA;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAmB,EACnB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,2CAgBA;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,2CAqBlE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,2CAmCjD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,2CAmBlE;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAiB/C;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzC,2CA0DA"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EAGzB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC/D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2BD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,2CAqDrD;AAED,wBAAgB,OAAO,CAAC,EACtB,gBAAoB,EACpB,QAAe,EACf,KAAK,EACL,GAAG,KAAK,EACT,EAAE,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAAE,2CAwC3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CASlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CAYlE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,2CAarD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,oBAAoB,CAAC,2CAkB3E;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,SAAS,GAAG;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,2CAsBA;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAmB,EACnB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,2CAgBA;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,2CAqBlE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,2CAmCjD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,2CAmBlE;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAiB/C;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzC,2CAuDA"}
@@ -158,7 +158,6 @@ function useInternalContext() {
158
158
  */
159
159
  export function SidebarPageTree(props) {
160
160
  const { root } = useTreeContext();
161
- const idRef = useRef(0);
162
161
  return useMemo(() => {
163
162
  const { Separator, Item, Folder } = props.components ?? {};
164
163
  function renderSidebarList(items, level) {
@@ -179,8 +178,8 @@ export function SidebarPageTree(props) {
179
178
  return (_jsx(SidebarItem, { href: item.url, external: item.external, icon: item.icon, children: item.name }, item.url));
180
179
  });
181
180
  }
182
- return (_jsx(Fragment, { children: renderSidebarList(root.children, 1) }, idRef.current++));
183
- }, [props.components, root.children]);
181
+ return (_jsx(Fragment, { children: renderSidebarList(root.children, 1) }, root.$id));
182
+ }, [props.components, root.$id]);
184
183
  }
185
184
  function PageTreeFolder({ item, ...props }) {
186
185
  const { defaultOpenLevel, level } = useInternalContext();
@@ -37,7 +37,7 @@ export function DocsLayout({ nav: { enabled: navEnabled = true, component: navRe
37
37
  }), 'fixed top-1/2 -translate-y-1/2 start-0 z-40 text-fd-muted-foreground border-s-0 rounded-s-none shadow-md data-[collapsed=false]:hidden max-md:hidden'), children: _jsx(ChevronRight, {}) })) : null, replaceOrDefault({ enabled: sidebarEnabled, component: sidebarReplace }, _jsxs(Aside, { ...sidebar, className: cn('md:ps-(--fd-layout-offset)', sidebar.className), children: [_jsxs(SidebarHeader, { children: [_jsxs("div", { className: "flex flex-row pt-1 max-md:hidden", children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex text-[15px] items-center gap-2.5 font-medium", children: nav.title }), nav.children, collapsible && (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
38
38
  color: 'ghost',
39
39
  size: 'icon-sm',
40
- }), 'ms-auto mb-auto text-fd-muted-foreground max-md:hidden') }))] }), sidebarBanner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null, !sidebarHideSearch ? (_jsx(LargeSearchToggle, { hideIfDisabled: true, className: "rounded-lg max-md:hidden" })) : null] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "mb-4 empty:hidden md:hidden", children: links
40
+ }), 'ms-auto mb-auto text-fd-muted-foreground max-md:hidden') }))] }), sidebarBanner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null, !sidebarHideSearch ? (_jsx(LargeSearchToggle, { hideIfDisabled: true, className: "rounded-lg max-md:hidden" })) : null] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "mb-4 empty:hidden", children: links
41
41
  .filter((v) => v.type !== 'icon')
42
42
  .map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx(SidebarPageTree, { components: sidebarComponents })] }), _jsxs(SidebarFooter, { children: [_jsx(SidebarFooterItems, { links: links, i18n: i18n, disableThemeSwitch: props.disableThemeSwitch ?? false }), sidebarFooter] })] }), {
43
43
  ...sidebar,
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,UAAU,aACR,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7E;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG;QAChE;;;;WAIG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,QAAQ,EAAE,SAAS,CAAC;CACrB;AAOD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,GAAG,EACH,KAAK,EAAE,EAAE,OAAc,EAAE,GAAG,KAAK,EAAO,EACxC,MAAM,GACP,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA4BxC;AAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,UAAU,aACR,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7E;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG;QAChE;;;;WAIG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,QAAQ,EAAE,SAAS,CAAC;CACrB;AAOD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,GAAW,EACX,KAAK,EAAE,EAAE,OAAc,EAAE,GAAG,KAAK,EAAO,EACxC,MAAM,GACP,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA4BxC;AAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC"}
package/dist/provider.js CHANGED
@@ -6,13 +6,13 @@ import { DirectionProvider } from '@radix-ui/react-direction';
6
6
  import { SidebarProvider } from './contexts/sidebar.js';
7
7
  import { SearchProvider } from './contexts/search.js';
8
8
  const DefaultSearchDialog = dynamic(() => import('./components/dialog/search-default.js'), { ssr: false });
9
- export function RootProvider({ children, dir, theme: { enabled = true, ...theme } = {}, search, }) {
9
+ export function RootProvider({ children, dir = 'ltr', theme: { enabled = true, ...theme } = {}, search, }) {
10
10
  let body = children;
11
11
  if (search?.enabled !== false)
12
12
  body = (_jsx(SearchProvider, { SearchDialog: DefaultSearchDialog, ...search, children: body }));
13
13
  if (enabled)
14
14
  body = (_jsx(ThemeProvider, { attribute: "class", defaultTheme: "system", enableSystem: true, disableTransitionOnChange: true, ...theme, children: body }));
15
- return (_jsx(DirectionProvider, { dir: dir ?? 'ltr', children: _jsx(SidebarProvider, { children: body }) }));
15
+ return (_jsx(DirectionProvider, { dir: dir, children: _jsx(SidebarProvider, { children: body }) }));
16
16
  }
17
17
  export { useI18n, I18nLabel } from './contexts/i18n.js';
18
18
  export { SearchProvider, SearchOnly, useSearchContext, } from './contexts/search.js';
package/dist/style.css CHANGED
@@ -564,6 +564,31 @@
564
564
  .collapse {
565
565
  visibility: collapse;
566
566
  }
567
+ .fd-step {
568
+ &:before {
569
+ background-color: var(--color-fd-secondary);
570
+ color: var(--color-fd-secondary-foreground);
571
+ content: counter(step);
572
+ counter-increment: step;
573
+ border-radius: 9999px;
574
+ justify-content: center;
575
+ align-items: center;
576
+ width: 2rem;
577
+ height: 2rem;
578
+ font-size: 0.875rem;
579
+ line-height: 1.25rem;
580
+ display: flex;
581
+ position: absolute;
582
+ left: -1rem;
583
+ }
584
+ }
585
+ .fd-steps {
586
+ counter-reset: step;
587
+ border-left-width: 1px;
588
+ margin-left: 1rem;
589
+ padding-left: 1.75rem;
590
+ position: relative;
591
+ }
567
592
  .absolute {
568
593
  position: absolute;
569
594
  }
@@ -1026,7 +1051,7 @@
1026
1051
  }
1027
1052
  :where(a:not([data-card])):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1028
1053
  color: var(--tw-prose-links);
1029
- transition: text-decoration .2s;
1054
+ transition: opacity .2s;
1030
1055
  font-weight: 500;
1031
1056
  text-decoration: underline;
1032
1057
  text-underline-offset: 3.5px;
@@ -1034,7 +1059,7 @@
1034
1059
  text-decoration-thickness: 1.5px;
1035
1060
  }
1036
1061
  :where(a:not([data-card]):hover):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1037
- text-decoration-thickness: 3px;
1062
+ opacity: 80%;
1038
1063
  }
1039
1064
  --tw-prose-body: color-mix(in oklab, var(--color-fd-foreground) 90%, transparent);
1040
1065
  --tw-prose-headings: var(--color-fd-foreground);
@@ -1087,6 +1112,14 @@
1087
1112
  border-bottom-color: var(--tw-prose-th-borders);
1088
1113
  }
1089
1114
  }
1115
+ .prose-no-margin {
1116
+ & > :first-child {
1117
+ margin-top: 0;
1118
+ }
1119
+ & > :last-child {
1120
+ margin-bottom: 0;
1121
+ }
1122
+ }
1090
1123
  .mt-\(--fd-nav-height\) {
1091
1124
  margin-top: var(--fd-nav-height);
1092
1125
  }
@@ -1706,6 +1739,9 @@
1706
1739
  .text-fd-foreground\/30 {
1707
1740
  color: color-mix(in oklab, var(--color-fd-foreground) 30%, transparent);
1708
1741
  }
1742
+ .text-fd-foreground\/80 {
1743
+ color: color-mix(in oklab, var(--color-fd-foreground) 80%, transparent);
1744
+ }
1709
1745
  .text-fd-muted-foreground {
1710
1746
  color: var(--color-fd-muted-foreground);
1711
1747
  }
@@ -2305,6 +2341,16 @@
2305
2341
  grid-template-columns: repeat(3, minmax(0, 1fr));
2306
2342
  }
2307
2343
  }
2344
+ .lg\:flex-row {
2345
+ @media (width >= 64rem) {
2346
+ flex-direction: row;
2347
+ }
2348
+ }
2349
+ .lg\:items-center {
2350
+ @media (width >= 64rem) {
2351
+ align-items: center;
2352
+ }
2353
+ }
2308
2354
  .lg\:rounded-2xl {
2309
2355
  @media (width >= 64rem) {
2310
2356
  border-radius: var(--radius-2xl);
@@ -2521,37 +2567,6 @@
2521
2567
  background-color: var(--color-fd-background);
2522
2568
  }
2523
2569
  }
2524
- @layer utilities {
2525
- .fd-steps {
2526
- counter-reset: step;
2527
- border-left-width: 1px;
2528
- margin-left: 1rem;
2529
- padding-left: 1.75rem;
2530
- position: relative;
2531
- }
2532
- .fd-step:before {
2533
- background-color: var(--color-fd-secondary);
2534
- color: var(--color-fd-secondary-foreground);
2535
- content: counter(step);
2536
- counter-increment: step;
2537
- border-radius: 9999px;
2538
- justify-content: center;
2539
- align-items: center;
2540
- width: 2rem;
2541
- height: 2rem;
2542
- font-size: 0.875rem;
2543
- line-height: 1.25rem;
2544
- display: flex;
2545
- position: absolute;
2546
- left: -1rem;
2547
- }
2548
- .prose-no-margin > :first-child {
2549
- margin-top: 0;
2550
- }
2551
- .prose-no-margin > :last-child {
2552
- margin-bottom: 0;
2553
- }
2554
- }
2555
2570
  @property --radix-collapsible-content-height {
2556
2571
  syntax: '<length>';
2557
2572
  inherits: false;
@@ -408,7 +408,7 @@ export const DEFAULT = {
408
408
  },
409
409
  'a:not([data-card])': {
410
410
  color: 'var(--tw-prose-links)',
411
- transition: 'text-decoration .2s',
411
+ transition: 'opacity .2s',
412
412
  fontWeight: '500',
413
413
  textDecoration: 'underline',
414
414
  textUnderlineOffset: '3.5px',
@@ -416,7 +416,7 @@ export const DEFAULT = {
416
416
  textDecorationThickness: '1.5px',
417
417
  },
418
418
  'a:not([data-card]):hover': {
419
- textDecorationThickness: '3px',
419
+ opacity: '80%',
420
420
  },
421
421
  },
422
422
  colors,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-ui",
3
- "version": "15.0.11",
3
+ "version": "15.0.13",
4
4
  "description": "The framework for building a documentation website in Next.js",
5
5
  "keywords": [
6
6
  "NextJs",
@@ -17,7 +17,8 @@
17
17
  "./image-zoom.css": "./dist/image-zoom.css",
18
18
  "./components/*": {
19
19
  "import": "./dist/components/*.js",
20
- "types": "./dist/components/*.d.ts"
20
+ "types": "./dist/components/*.d.ts",
21
+ "default": "./dist/components/*.js"
21
22
  },
22
23
  "./i18n": {
23
24
  "import": "./dist/i18n.js",
@@ -81,7 +82,7 @@
81
82
  "tsc-alias": "^1.8.10",
82
83
  "@fumadocs/cli": "0.0.8",
83
84
  "eslint-config-custom": "0.0.0",
84
- "fumadocs-core": "15.0.11",
85
+ "fumadocs-core": "15.0.13",
85
86
  "tsconfig": "0.0.0"
86
87
  },
87
88
  "peerDependencies": {
@@ -89,7 +90,7 @@
89
90
  "react": "18.x.x || 19.x.x",
90
91
  "react-dom": "18.x.x || 19.x.x",
91
92
  "tailwindcss": "^3.4.14 || ^4.0.0",
92
- "fumadocs-core": "15.0.11"
93
+ "fumadocs-core": "15.0.13"
93
94
  },
94
95
  "peerDependenciesMeta": {
95
96
  "tailwindcss": {