fumadocs-ui 15.2.7 → 15.2.9

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
@@ -1,6 +1,7 @@
1
1
  @import './shiki.css';
2
2
  @import './animations.css';
3
3
 
4
+ @source '../dist/**/*.js';
4
5
  @plugin '../dist/theme/typography/index.js';
5
6
 
6
7
  @theme {
@@ -39,10 +40,8 @@
39
40
 
40
41
  @utility fd-steps {
41
42
  counter-reset: step;
42
- border-left-width: 1px;
43
- margin-left: 1rem;
44
- padding-left: 1.75rem;
45
43
  position: relative;
44
+ @apply pl-6 ml-2 border-l sm:ml-4 sm:pl-7;
46
45
  }
47
46
 
48
47
  @utility fd-step {
@@ -51,16 +50,13 @@
51
50
  color: var(--color-fd-secondary-foreground);
52
51
  content: counter(step);
53
52
  counter-increment: step;
54
- border-radius: 9999px;
55
53
  justify-content: center;
56
54
  align-items: center;
57
- width: 2rem;
58
- height: 2rem;
59
55
  font-size: 0.875rem;
60
56
  line-height: 1.25rem;
61
57
  display: flex;
62
58
  position: absolute;
63
- left: -1rem;
59
+ @apply size-8 -start-4 rounded-full;
64
60
  }
65
61
  }
66
62
 
package/css/shadcn.css ADDED
@@ -0,0 +1,18 @@
1
+ @theme {
2
+ --color-fd-background: var(--background);
3
+ --color-fd-foreground: var(--foreground);
4
+ --color-fd-muted: var(--muted);
5
+ --color-fd-muted-foreground: var(--muted-foreground);
6
+ --color-fd-popover: var(--popover);
7
+ --color-fd-popover-foreground: var(--popover-foreground);
8
+ --color-fd-card: var(--card);
9
+ --color-fd-card-foreground: var(--card-foreground);
10
+ --color-fd-border: var(--border);
11
+ --color-fd-primary: var(--primary);
12
+ --color-fd-primary-foreground: var(--primary-foreground);
13
+ --color-fd-secondary: var(--secondary);
14
+ --color-fd-secondary-foreground: var(--secondary-foreground);
15
+ --color-fd-accent: var(--accent);
16
+ --color-fd-accent-foreground: var(--accent-foreground);
17
+ --color-fd-ring: var(--ring);
18
+ }
package/css/style.css CHANGED
@@ -6,8 +6,4 @@
6
6
  body {
7
7
  @apply flex flex-col min-h-screen;
8
8
  }
9
-
10
- button {
11
- cursor: pointer;
12
- }
13
9
  }
@@ -20,6 +20,6 @@ export const Callout = forwardRef(({ className, children, title, type = 'info',
20
20
  info: _jsx(Info, { className: "size-5 fill-blue-500 text-fd-card" }),
21
21
  warn: (_jsx(AlertTriangle, { className: "size-5 fill-orange-500 text-fd-card" })),
22
22
  error: _jsx(CircleX, { className: "size-5 fill-red-500 text-fd-card" }),
23
- }[type], _jsxs("div", { className: "min-w-0 flex-1", children: [title ? _jsx("p", { className: "not-prose mb-2 font-medium", children: title }) : null, _jsx("div", { className: "text-fd-muted-foreground prose-no-margin", children: children })] })] }));
23
+ }[type], _jsxs("div", { className: "min-w-0 flex-1", children: [title ? _jsx("p", { className: "font-medium !my-0", children: title }) : null, _jsx("div", { className: "text-fd-muted-foreground prose-no-margin mt-2 empty:hidden", children: children })] })] }));
24
24
  });
25
25
  Callout.displayName = 'Callout';
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock.d.ts","sourceRoot":"","sources":["../../src/components/codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACzD;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,GAAG,2HAYf,CAAC;AAIF,eAAO,MAAM,SAAS;IAxCpB;;;;OAIG;WACI,SAAS;IAEhB;;;;OAIG;gBACS,OAAO;IAEnB;;;;OAIG;qBACc,OAAO;oBAER,uBAAuB;+CAkGxC,CAAC"}
1
+ {"version":3,"file":"codeblock.d.ts","sourceRoot":"","sources":["../../src/components/codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACzD;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,GAAG,2HAYf,CAAC;AAIF,eAAO,MAAM,SAAS;IAxCpB;;;;OAIG;WACI,SAAS;IAEhB;;;;OAIG;gBACS,OAAO;IAEnB;;;;OAIG;qBACc,OAAO;oBAER,uBAAuB;+CAkGxC,CAAC"}
@@ -22,7 +22,7 @@ export const CodeBlock = forwardRef(({ title, allowCopy = true, keepBackground =
22
22
  });
23
23
  void navigator.clipboard.writeText(clone.textContent ?? '');
24
24
  }, []);
25
- return (_jsxs("figure", { ref: ref, ...props, className: cn('not-prose group fd-codeblock relative my-6 overflow-hidden rounded-lg border bg-fd-secondary/50 text-sm', keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)', props.className), children: [title ? (_jsxs("div", { className: "flex flex-row items-center gap-2 border-b bg-fd-muted px-4 py-1.5", children: [icon ? (_jsx("div", { className: "text-fd-muted-foreground [&_svg]:size-3.5", dangerouslySetInnerHTML: typeof icon === 'string'
25
+ return (_jsxs("figure", { ref: ref, ...props, className: cn('not-prose group fd-codeblock relative my-4 overflow-hidden rounded-lg border bg-fd-secondary/50 text-sm', keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)', props.className), children: [title ? (_jsxs("div", { className: "flex items-center gap-2 border-b bg-fd-muted px-4 py-1.5", children: [icon ? (_jsx("div", { className: "text-fd-muted-foreground [&_svg]:size-3.5", dangerouslySetInnerHTML: typeof icon === 'string'
26
26
  ? {
27
27
  __html: icon,
28
28
  }
@@ -22,7 +22,7 @@ export function RootToggle({ options, placeholder, ...props }) {
22
22
  setOpen(false);
23
23
  };
24
24
  const item = selected ? _jsx(Item, { ...selected }) : placeholder;
25
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [item ? (_jsxs(PopoverTrigger, { ...props, className: cn('flex flex-row items-center gap-2.5 rounded-lg ps-2 pe-4 py-1.5 hover:text-fd-accent-foreground', props.className), children: [item, _jsx(ChevronsUpDown, { className: "size-4 text-fd-muted-foreground" })] })) : null, _jsx(PopoverContent, { className: "w-(--radix-popover-trigger-width) overflow-hidden p-0", children: options.map((item) => (_jsx(Link, { href: item.url, onClick: onClick, ...item.props, className: cn('flex w-full flex-row items-center gap-2 px-2 py-1.5', selected === item
25
+ return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [item ? (_jsxs(PopoverTrigger, { ...props, className: cn('flex items-center gap-2.5 rounded-lg pe-2 hover:text-fd-accent-foreground', props.className), children: [item, _jsx(ChevronsUpDown, { className: "size-4 text-fd-muted-foreground" })] })) : null, _jsx(PopoverContent, { className: "w-(--radix-popover-trigger-width) overflow-hidden p-0", children: options.map((item) => (_jsx(Link, { href: item.url, onClick: onClick, ...item.props, className: cn('flex w-full flex-row items-center gap-2 px-2 py-1.5', selected === item
26
26
  ? 'bg-fd-accent text-fd-accent-foreground'
27
27
  : 'hover:bg-fd-accent/50', item.props?.className), children: _jsx(Item, { ...item }) }, item.url))) })] }));
28
28
  }
@@ -70,7 +70,7 @@ export function Sidebar({ defaultOpenLevel = 0, prefetch = true, inner, ...props
70
70
  }, children: _jsx("div", { ...inner, className: cn('flex size-full max-w-full flex-col pt-2 md:ms-auto md:w-(--fd-sidebar-width) md:border-e md:pt-4', inner?.className), children: props.children }) }) }));
71
71
  }
72
72
  export function SidebarHeader(props) {
73
- return (_jsx("div", { ...props, className: cn('flex flex-col gap-2 px-4 empty:hidden', props.className), children: props.children }));
73
+ return (_jsx("div", { ...props, className: cn('flex flex-col gap-3 px-4 empty:hidden', props.className), children: props.children }));
74
74
  }
75
75
  export function SidebarFooter(props) {
76
76
  return (_jsx("div", { ...props, className: cn('flex flex-col border-t px-4 py-3 empty:hidden', props.className), children: props.children }));
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as Primitive from 'fumadocs-core/toc';
4
4
  import { useRef, } from 'react';
5
5
  import { cn } from '../../utils/cn.js';
@@ -20,14 +20,14 @@ export function TocItemsEmpty() {
20
20
  }
21
21
  export function TOCScrollArea({ isMenu, ...props }) {
22
22
  const viewRef = useRef(null);
23
- return (_jsx(ScrollArea, { ...props, className: cn('flex flex-col ps-px', props.className), children: _jsx(ScrollViewport, { ref: viewRef, className: cn('min-h-0 text-sm', isMenu &&
23
+ return (_jsx(ScrollArea, { ...props, className: cn('flex flex-col ps-px', props.className), children: _jsx(ScrollViewport, { ref: viewRef, className: cn('relative min-h-0 text-sm', isMenu &&
24
24
  '[mask-image:linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] px-4 md:px-6 py-2'), children: _jsx(Primitive.ScrollProvider, { containerRef: viewRef, children: props.children }) }) }));
25
25
  }
26
26
  export function TOCItems({ items }) {
27
27
  const containerRef = useRef(null);
28
28
  if (items.length === 0)
29
29
  return _jsx(TocItemsEmpty, {});
30
- return (_jsxs("div", { className: "relative", children: [_jsx(TocThumb, { containerRef: containerRef, className: "absolute start-0 mt-(--fd-top) h-(--fd-height) w-px bg-fd-primary transition-all" }), _jsx("div", { ref: containerRef, className: "flex flex-col border-s border-fd-foreground/10", children: items.map((item) => (_jsx(TOCItem, { item: item }, item.url))) })] }));
30
+ return (_jsxs(_Fragment, { children: [_jsx(TocThumb, { containerRef: containerRef, className: "absolute top-(--fd-top) h-(--fd-height) w-px bg-fd-primary transition-all" }), _jsx("div", { ref: containerRef, className: "flex flex-col border-s border-fd-foreground/10", children: items.map((item) => (_jsx(TOCItem, { item: item }, item.url))) })] }));
31
31
  }
32
32
  function TOCItem({ item }) {
33
33
  return (_jsx(Primitive.TOCItem, { href: item.url, className: cn('prose py-1.5 text-sm text-fd-muted-foreground transition-colors [overflow-wrap:anywhere] first:pt-0 last:pb-0 data-[active=true]:text-fd-primary', item.depth <= 2 && 'ps-3', item.depth === 3 && 'ps-6', item.depth >= 4 && 'ps-8'), children: item.title }));
@@ -8,7 +8,7 @@ export const buttonVariants = cva('inline-flex items-center justify-center round
8
8
  secondary: 'border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground',
9
9
  },
10
10
  size: {
11
- sm: 'gap-1 p-0.5 text-xs',
11
+ sm: 'gap-1 p-1 text-xs',
12
12
  icon: 'p-1.5 [&_svg]:size-5',
13
13
  'icon-sm': 'p-1.5 [&_svg]:size-4.5',
14
14
  },
@@ -1,6 +1,6 @@
1
1
  import type { PageTree } from 'fumadocs-core/server';
2
- import { type ReactNode, type HTMLAttributes } from 'react';
3
- import { type LinkItemType, type IconItemType } from '../layouts/links.js';
2
+ import { type HTMLAttributes, type ReactNode } from 'react';
3
+ import { type IconItemType, type LinkItemType } from '../layouts/links.js';
4
4
  import { type BaseLayoutProps } from './shared.js';
5
5
  import { CollapsibleControl, Navbar, NavbarSidebarTrigger } from '../layouts/docs-client.js';
6
6
  import { type SidebarOptions } from '../layouts/docs/shared.js';
@@ -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,EAAW,MAAM,OAAO,CAAC;AAcrE,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,UAAU,CAAC;AAK1D,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;QAClC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,GAAG,EAAO,EACrC,YAAY,EACZ,kBAA0B,EAC1B,WAA8C,EAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAO,EAC9C,IAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,SAAS,CAoG7B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAkB,EAClB,UAAU,EACV,GAAG,EACH,KAAU,EACV,MAAM,EACN,MAAM,EACN,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAChC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB,2CA2CA;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,WAAW,EACX,KAAU,GACX,EAAE;IACD,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;CAC9C,kDAiCA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,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,cAAc,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAcrE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,UAAU,CAAC;AAK1D,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;QAClC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,GAAG,EAAO,EACrC,YAAY,EACZ,kBAA0B,EAC1B,WAA8C,EAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAO,EAC9C,IAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,SAAS,CAkG7B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAkB,EAClB,UAAU,EACV,GAAG,EACH,KAAU,EACV,MAAM,EACN,MAAM,EACN,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAChC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB,2CA2CA;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,WAAW,EACX,KAAU,GACX,EAAE;IACD,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;CAC9C,kDAiCA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
@@ -3,7 +3,7 @@ import { useMemo } from 'react';
3
3
  import { Languages, SidebarIcon } from 'lucide-react';
4
4
  import { cn } from '../utils/cn.js';
5
5
  import { buttonVariants } from '../components/ui/button.js';
6
- import { CollapsibleSidebar, Sidebar, SidebarFooter, SidebarHeader, SidebarCollapseTrigger, SidebarViewport, SidebarPageTree, } from '../components/layout/sidebar.js';
6
+ import { CollapsibleSidebar, Sidebar, SidebarCollapseTrigger, SidebarFooter, SidebarHeader, SidebarPageTree, SidebarViewport, } from '../components/layout/sidebar.js';
7
7
  import { slot, slots } from '../layouts/shared.js';
8
8
  import { BaseLinkItem, } from '../layouts/links.js';
9
9
  import { RootToggle } from '../components/layout/root-toggle.js';
@@ -14,7 +14,7 @@ import { TreeContextProvider } from '../contexts/tree.js';
14
14
  import { ThemeToggle } from '../components/layout/theme-toggle.js';
15
15
  import { LargeSearchToggle, SearchToggle, } from '../components/layout/search-toggle.js';
16
16
  import { getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared.js';
17
- import { StylesProvider, NavProvider, } from '../contexts/layout.js';
17
+ import { NavProvider, StylesProvider, } from '../contexts/layout.js';
18
18
  import Link from 'fumadocs-core/link';
19
19
  export function DocsLayout({ nav: { transparentMode, ...nav } = {}, searchToggle, disableThemeSwitch = false, themeSwitch = { enabled: !disableThemeSwitch }, sidebar: { tabs: tabOptions, ...sidebar } = {}, i18n = false, children, ...props }) {
20
20
  const tabs = useMemo(() => getSidebarTabsFromOptions(tabOptions, props.tree) ?? [], [tabOptions, props.tree]);
@@ -29,14 +29,14 @@ export function DocsLayout({ nav: { transparentMode, ...nav } = {}, searchToggle
29
29
  return (_jsx(TreeContextProvider, { tree: props.tree, children: _jsxs(NavProvider, { transparentMode: transparentMode, children: [slot(nav, _jsxs(Navbar, { className: "md:hidden", children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex items-center gap-2.5 font-semibold", children: nav.title }), _jsx("div", { className: "flex flex-1 flex-row items-center gap-1", children: nav.children }), slots('sm', searchToggle, _jsx(SearchToggle, { hideIfDisabled: true })), _jsx(NavbarSidebarTrigger, { className: "-me-2 md:hidden" })] })), _jsxs("main", { id: "nd-docs-layout", ...props.containerProps, className: cn('flex flex-1 flex-row pe-(--fd-layout-offset)', variables, props.containerProps?.className), style: {
30
30
  ...layoutVariables,
31
31
  ...props.containerProps?.style,
32
- }, children: [slot(sidebar, _jsx(DocsLayoutSidebar, { ...sidebar, links: links, nav: _jsxs(_Fragment, { children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex text-[15px] items-center gap-2.5 font-medium", children: nav.title }), nav.children] }), banner: _jsxs(_Fragment, { children: [tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null, slots('lg', searchToggle, _jsx(LargeSearchToggle, { hideIfDisabled: true, className: "rounded-lg max-md:hidden" })), sidebar.banner] }), footer: _jsxs(_Fragment, { children: [_jsx(DocsLayoutSidebarFooter, { links: links.filter((item) => item.type === 'icon'), i18n: i18n, themeSwitch: themeSwitch }), sidebar.footer] }) })), _jsx(StylesProvider, { ...pageStyles, children: children })] })] }) }));
32
+ }, children: [slot(sidebar, _jsx(DocsLayoutSidebar, { ...sidebar, links: links, nav: _jsxs(_Fragment, { children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex text-[15px] items-center gap-2.5 font-medium", children: nav.title }), nav.children] }), banner: _jsxs(_Fragment, { children: [tabs.length > 0 ? _jsx(RootToggle, { options: tabs }) : null, slots('lg', searchToggle, _jsx(LargeSearchToggle, { hideIfDisabled: true, className: "rounded-lg max-md:hidden" })), sidebar.banner] }), footer: _jsxs(_Fragment, { children: [_jsx(DocsLayoutSidebarFooter, { links: links.filter((item) => item.type === 'icon'), i18n: i18n, themeSwitch: themeSwitch }), sidebar.footer] }) })), _jsx(StylesProvider, { ...pageStyles, children: children })] })] }) }));
33
33
  }
34
34
  export function DocsLayoutSidebar({ collapsible = true, components, nav, links = [], footer, banner, ...props }) {
35
35
  const Aside = collapsible ? CollapsibleSidebar : Sidebar;
36
- return (_jsxs(_Fragment, { children: [collapsible ? _jsx(CollapsibleControl, {}) : null, _jsxs(Aside, { ...props, className: cn('md:ps-(--fd-layout-offset)', props.className), children: [_jsxs(SidebarHeader, { children: [_jsxs("div", { className: "flex flex-row pt-1 max-md:hidden", children: [nav, collapsible && (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
36
+ return (_jsxs(_Fragment, { children: [collapsible ? _jsx(CollapsibleControl, {}) : null, _jsxs(Aside, { ...props, className: cn('md:ps-(--fd-layout-offset)', props.className), children: [_jsxs(SidebarHeader, { children: [_jsxs("div", { className: "flex flex-row py-1.5 max-md:hidden", children: [nav, collapsible && (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
37
37
  color: 'ghost',
38
38
  size: 'icon-sm',
39
- }), 'ms-auto mb-auto text-fd-muted-foreground max-md:hidden'), children: _jsx(SidebarIcon, {}) }))] }), banner] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "mb-4 empty:hidden", children: links
39
+ }), 'ms-auto mb-auto -my-1.5 text-fd-muted-foreground max-md:hidden'), children: _jsx(SidebarIcon, {}) }))] }), banner] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "mb-4 empty:hidden", children: links
40
40
  .filter((v) => v.type !== 'icon')
41
41
  .map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx(SidebarPageTree, { components: components })] }), _jsx(SidebarFooter, { children: footer })] })] }));
42
42
  }
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment, useMemo } from 'react';
3
3
  import { getLinks, slot, slots } from '../layouts/shared.js';
4
- import { CollapsibleSidebar, Sidebar, SidebarCollapseTrigger, SidebarFooter, SidebarHeader, SidebarViewport, SidebarPageTree, } from '../components/layout/sidebar.js';
4
+ import { CollapsibleSidebar, Sidebar, SidebarCollapseTrigger, SidebarFooter, SidebarHeader, SidebarPageTree, SidebarViewport, } from '../components/layout/sidebar.js';
5
5
  import { TreeContextProvider } from '../contexts/tree.js';
6
6
  import { cn } from '../utils/cn.js';
7
7
  import { buttonVariants } from '../components/ui/button.js';
@@ -12,7 +12,7 @@ import { ThemeToggle } from '../components/layout/theme-toggle.js';
12
12
  import { Popover, PopoverContent, PopoverTrigger, } from '../components/ui/popover.js';
13
13
  import { getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared.js';
14
14
  import { LayoutTab, LayoutTabs, Navbar, NavbarSidebarTrigger, SidebarLayoutTab, } from './notebook-client.js';
15
- import { StylesProvider, NavProvider, } from '../contexts/layout.js';
15
+ import { NavProvider, StylesProvider, } from '../contexts/layout.js';
16
16
  import { RootToggle } from '../components/layout/root-toggle.js';
17
17
  import Link from 'fumadocs-core/link';
18
18
  import { LargeSearchToggle, SearchToggle, } from '../components/layout/search-toggle.js';
@@ -37,7 +37,7 @@ export function DocsLayout({ tabMode = 'sidebar', nav: { transparentMode, ...nav
37
37
  }, children: [_jsxs(SidebarHeader, { children: [navMode === 'auto' && (_jsxs("div", { className: "flex flex-row justify-between max-md:hidden", children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex items-center gap-2.5 font-medium", children: nav.title }), _jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
38
38
  color: 'ghost',
39
39
  size: 'icon-sm',
40
- }), 'text-fd-muted-foreground mb-auto'), children: _jsx(SidebarIcon, {}) })] })), nav.children, sidebarBanner, tabMode === 'sidebar' && tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null] }), _jsxs(SidebarViewport, { children: [tabMode === 'navbar' &&
40
+ }), 'text-fd-muted-foreground mb-auto'), children: _jsx(SidebarIcon, {}) })] })), nav.children, sidebarBanner, tabMode === 'sidebar' && tabs.length > 0 ? (_jsx(RootToggle, { options: tabs })) : null] }), _jsxs(SidebarViewport, { children: [tabMode === 'navbar' &&
41
41
  tabs.map((tab, i) => (_jsx(SidebarLayoutTab, { item: tab, className: cn('lg:hidden', i === tabs.length - 1 && 'mb-4') }, tab.url))), links.map((item, i) => (_jsx(SidebarLinkItem, { item: item, className: cn('lg:hidden', i === links.length - 1 && 'mb-4') }, i))), _jsx(SidebarPageTree, { components: sidebarComponents })] }), _jsxs(SidebarFooter, { className: cn('flex flex-row items-center', !sidebarFooter && 'md:hidden'), children: [i18n ? (_jsx(LanguageToggle, { className: "me-auto md:hidden", children: _jsx(Languages, { className: "size-5 text-fd-muted-foreground" }) })) : null, slot(themeSwitch, _jsx(ThemeToggle, { className: "md:hidden", mode: themeSwitch?.mode ?? 'light-dark-system' })), sidebarFooter] })] }), _jsx(DocsNavbar, { mode: nav.mode, nav: _jsx(Link, { href: nav.url ?? '/', className: cn('inline-flex items-center gap-2.5 font-semibold', navMode === 'auto' && 'md:hidden'), children: nav.title }), links: links, i18n: i18n, sidebarCollapsible: sidebarCollapsible, searchToggle: searchToggle, tabs: tabMode == 'navbar' ? tabs : [], children: nav.children }), _jsx(StylesProvider, { ...pageStyles, children: props.children })] }) }) }));
42
42
  }
43
43
  function DocsNavbar({ mode: navMode = 'auto', nav, sidebarCollapsible = false, links, themeSwitch, searchToggle, i18n = false, tabs, children, }) {
@@ -46,7 +46,7 @@ function DocsNavbar({ mode: navMode = 'auto', nav, sidebarCollapsible = false, l
46
46
  size: 'icon-sm',
47
47
  }), 'text-fd-muted-foreground -ms-1.5 me-2 data-[collapsed=false]:hidden max-md:hidden'), children: _jsx(SidebarIcon, {}) })) : null, nav] }), slots('lg', searchToggle, _jsx(LargeSearchToggle, { hideIfDisabled: true, className: cn('w-full my-auto rounded-xl max-md:hidden', navMode === 'top' ? 'max-w-sm px-2' : 'max-w-[240px]') })), _jsxs("div", { className: "flex flex-1 flex-row items-center justify-end", children: [_jsx("div", { className: "flex flex-row items-center gap-6 px-4 empty:hidden max-lg:hidden", children: links
48
48
  .filter((item) => item.type !== 'icon')
49
- .map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "text-sm text-fd-muted-foreground transition-colors hover:text-fd-accent-foreground" }, i))) }), children, slots('sm', searchToggle, _jsx(SearchToggle, { hideIfDisabled: true, className: "md:hidden" })), _jsx(NavbarSidebarTrigger, { className: "md:hidden" }), links
49
+ .map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "text-sm text-fd-muted-foreground transition-colors hover:text-fd-accent-foreground" }, i))) }), children, slots('sm', searchToggle, _jsx(SearchToggle, { hideIfDisabled: true, className: "md:hidden" })), _jsx(NavbarSidebarTrigger, { className: "-me-1.5 md:hidden" }), links
50
50
  .filter((item) => item.type === 'icon')
51
51
  .map((item, i) => (_jsx(BaseLinkItem, { item: item, className: cn(buttonVariants({ size: 'icon-sm', color: 'ghost' }), 'text-fd-muted-foreground max-lg:hidden'), "aria-label": item.label, children: item.icon }, i))), i18n ? (_jsx(LanguageToggle, { className: "max-md:hidden", children: _jsx(Languages, { className: "size-4.5 text-fd-muted-foreground" }) })) : null, slot(themeSwitch, _jsx(ThemeToggle, { className: "ms-2 max-md:hidden", mode: themeSwitch?.mode ?? 'light-dark-system' })), sidebarCollapsible && navMode === 'top' ? (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
52
52
  color: 'secondary',
package/dist/mdx.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../src/mdx.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,EAAE,EACF,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAMhD,iBAAS,KAAK,CACZ,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,2CASF;AAED,iBAAS,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,2CAM1D;AAED,QAAA,MAAM,oBAAoB;iBACX,cAAc,CAAC,cAAc,CAAC;;;OAOhC,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;;gBAE1C,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;;;;;;;CAK/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAAc,cAAc,EAAE,kBAK5D,CAAC;AAEJ,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../src/mdx.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,EAAE,EACF,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAMhD,iBAAS,KAAK,CACZ,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,2CAUF;AAED,iBAAS,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,2CAM1D;AAED,QAAA,MAAM,oBAAoB;iBACX,cAAc,CAAC,cAAc,CAAC;;;OAOhC,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;;gBAE1C,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;;;;;;;CAK/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAAc,cAAc,EAAE,kBAK5D,CAAC;AAEJ,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
package/dist/mdx.js CHANGED
@@ -7,7 +7,7 @@ import { Heading } from './components/heading.js';
7
7
  import { cn } from './utils/cn.js';
8
8
  import { CodeBlock, Pre } from './components/codeblock.js';
9
9
  function Image(props) {
10
- return (_jsx(FrameworkImage, { sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px", ...props, className: cn('rounded-lg', props.className) }));
10
+ return (_jsx(FrameworkImage, { sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px", ...props, src: props.src, className: cn('rounded-lg', props.className) }));
11
11
  }
12
12
  function Table(props) {
13
13
  return (_jsx("div", { className: "relative overflow-auto prose-no-margin my-6", children: _jsx("table", { ...props }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"mdx.server.d.ts","sourceRoot":"","sources":["../src/mdx.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,oBAAoB,MAAM,OAAO,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,EAClC,IAAI,EAAE,IAAI,EACV,YAAY,GAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAA0B,GAC7D,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAUzB;AAED,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"mdx.server.d.ts","sourceRoot":"","sources":["../src/mdx.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,oBAAoB,MAAM,OAAO,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,EAClC,IAAI,EAAE,IAAI,EACV,YAAY,GAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAA0B,GAC7D,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAezB;AAED,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
@@ -12,8 +12,11 @@ export function createRelativeLink(source, page, OverrideLink = defaultMdxCompon
12
12
  // resolve relative href
13
13
  if (href && href.startsWith('.')) {
14
14
  const target = source.getPageByHref(href, { dir: page.file.dirname });
15
- if (target)
16
- href = target.page.url;
15
+ if (target) {
16
+ href = target.hash
17
+ ? `${target.page.url}#${target.hash}`
18
+ : target.page.url;
19
+ }
17
20
  }
18
21
  return _jsx(OverrideLink, { href: href, ...props });
19
22
  };
package/dist/style.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
@@ -22,6 +22,7 @@
22
22
  --text-base--line-height: calc(1.5 / 1);
23
23
  --text-lg: 1.125rem;
24
24
  --text-lg--line-height: calc(1.75 / 1.125);
25
+ --text-2xl: 1.5rem;
25
26
  --text-3xl: 1.875rem;
26
27
  --text-3xl--line-height: calc(2.25 / 1.875);
27
28
  --font-weight-medium: 500;
@@ -243,24 +244,31 @@
243
244
  color: var(--color-fd-secondary-foreground);
244
245
  content: counter(step);
245
246
  counter-increment: step;
246
- border-radius: 9999px;
247
247
  justify-content: center;
248
248
  align-items: center;
249
- width: 2rem;
250
- height: 2rem;
251
249
  font-size: 0.875rem;
252
250
  line-height: 1.25rem;
253
251
  display: flex;
254
252
  position: absolute;
255
- left: -1rem;
253
+ inset-inline-start: calc(var(--spacing) * -4);
254
+ width: calc(var(--spacing) * 8);
255
+ height: calc(var(--spacing) * 8);
256
+ border-radius: calc(infinity * 1px);
256
257
  }
257
258
  }
258
259
  .fd-steps {
259
260
  counter-reset: step;
260
- border-left-width: 1px;
261
- margin-left: 1rem;
262
- padding-left: 1.75rem;
263
261
  position: relative;
262
+ margin-left: calc(var(--spacing) * 2);
263
+ border-left-style: var(--tw-border-style);
264
+ border-left-width: 1px;
265
+ padding-left: calc(var(--spacing) * 6);
266
+ @media (width >= 40rem) {
267
+ margin-left: calc(var(--spacing) * 4);
268
+ }
269
+ @media (width >= 40rem) {
270
+ padding-left: calc(var(--spacing) * 7);
271
+ }
264
272
  }
265
273
  .absolute {
266
274
  position: absolute;
@@ -307,6 +315,9 @@
307
315
  .top-\(--fd-nav-height\) {
308
316
  top: var(--fd-nav-height);
309
317
  }
318
+ .top-\(--fd-top\) {
319
+ top: var(--fd-top);
320
+ }
310
321
  .top-0 {
311
322
  top: calc(var(--spacing) * 0);
312
323
  }
@@ -392,6 +403,9 @@
392
403
  .\!my-0 {
393
404
  margin-block: calc(var(--spacing) * 0) !important;
394
405
  }
406
+ .-my-1\.5 {
407
+ margin-block: calc(var(--spacing) * -1.5);
408
+ }
395
409
  .my-0 {
396
410
  margin-block: calc(var(--spacing) * 0);
397
411
  }
@@ -578,7 +592,7 @@
578
592
  :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
579
593
  color: var(--tw-prose-headings);
580
594
  font-weight: 800;
581
- font-size: 2.25em;
595
+ font-size: var(--text-3xl);
582
596
  margin-top: 0;
583
597
  margin-bottom: 0.8888889em;
584
598
  line-height: 1.1111111;
@@ -678,6 +692,7 @@
678
692
  }
679
693
  :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
680
694
  color: inherit;
695
+ font-size: var(--text-2xl);
681
696
  }
682
697
  :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
683
698
  color: inherit;
@@ -811,6 +826,9 @@
811
826
  .mt-\(--fd-top\) {
812
827
  margin-top: var(--fd-top);
813
828
  }
829
+ .mt-2 {
830
+ margin-top: calc(var(--spacing) * 2);
831
+ }
814
832
  .mt-6 {
815
833
  margin-top: calc(var(--spacing) * 6);
816
834
  }
@@ -1045,7 +1063,7 @@
1045
1063
  rotate: 180deg;
1046
1064
  }
1047
1065
  .transform {
1048
- transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
1066
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
1049
1067
  }
1050
1068
  .animate-fd-fade-in {
1051
1069
  animation: var(--animate-fd-fade-in);
@@ -1393,15 +1411,15 @@
1393
1411
  .pe-\(--fd-layout-offset\) {
1394
1412
  padding-inline-end: var(--fd-layout-offset);
1395
1413
  }
1414
+ .pe-2 {
1415
+ padding-inline-end: calc(var(--spacing) * 2);
1416
+ }
1396
1417
  .pe-4 {
1397
1418
  padding-inline-end: calc(var(--spacing) * 4);
1398
1419
  }
1399
1420
  .pt-0 {
1400
1421
  padding-top: calc(var(--spacing) * 0);
1401
1422
  }
1402
- .pt-1 {
1403
- padding-top: calc(var(--spacing) * 1);
1404
- }
1405
1423
  .pt-2 {
1406
1424
  padding-top: calc(var(--spacing) * 2);
1407
1425
  }
@@ -2405,9 +2423,11 @@
2405
2423
  min-height: 100vh;
2406
2424
  flex-direction: column;
2407
2425
  }
2408
- button {
2409
- cursor: pointer;
2410
- }
2426
+ }
2427
+ @property --tw-border-style {
2428
+ syntax: "*";
2429
+ inherits: false;
2430
+ initial-value: solid;
2411
2431
  }
2412
2432
  @property --tw-translate-x {
2413
2433
  syntax: "*";
@@ -2442,38 +2462,28 @@
2442
2462
  @property --tw-rotate-x {
2443
2463
  syntax: "*";
2444
2464
  inherits: false;
2445
- initial-value: rotateX(0);
2446
2465
  }
2447
2466
  @property --tw-rotate-y {
2448
2467
  syntax: "*";
2449
2468
  inherits: false;
2450
- initial-value: rotateY(0);
2451
2469
  }
2452
2470
  @property --tw-rotate-z {
2453
2471
  syntax: "*";
2454
2472
  inherits: false;
2455
- initial-value: rotateZ(0);
2456
2473
  }
2457
2474
  @property --tw-skew-x {
2458
2475
  syntax: "*";
2459
2476
  inherits: false;
2460
- initial-value: skewX(0);
2461
2477
  }
2462
2478
  @property --tw-skew-y {
2463
2479
  syntax: "*";
2464
2480
  inherits: false;
2465
- initial-value: skewY(0);
2466
2481
  }
2467
2482
  @property --tw-divide-y-reverse {
2468
2483
  syntax: "*";
2469
2484
  inherits: false;
2470
2485
  initial-value: 0;
2471
2486
  }
2472
- @property --tw-border-style {
2473
- syntax: "*";
2474
- inherits: false;
2475
- initial-value: solid;
2476
- }
2477
2487
  @property --tw-font-weight {
2478
2488
  syntax: "*";
2479
2489
  inherits: false;
@@ -2799,19 +2809,19 @@
2799
2809
  @layer properties {
2800
2810
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
2801
2811
  *, ::before, ::after, ::backdrop {
2812
+ --tw-border-style: solid;
2802
2813
  --tw-translate-x: 0;
2803
2814
  --tw-translate-y: 0;
2804
2815
  --tw-translate-z: 0;
2805
2816
  --tw-scale-x: 1;
2806
2817
  --tw-scale-y: 1;
2807
2818
  --tw-scale-z: 1;
2808
- --tw-rotate-x: rotateX(0);
2809
- --tw-rotate-y: rotateY(0);
2810
- --tw-rotate-z: rotateZ(0);
2811
- --tw-skew-x: skewX(0);
2812
- --tw-skew-y: skewY(0);
2819
+ --tw-rotate-x: initial;
2820
+ --tw-rotate-y: initial;
2821
+ --tw-rotate-z: initial;
2822
+ --tw-skew-x: initial;
2823
+ --tw-skew-y: initial;
2813
2824
  --tw-divide-y-reverse: 0;
2814
- --tw-border-style: solid;
2815
2825
  --tw-font-weight: initial;
2816
2826
  --tw-shadow: 0 0 #0000;
2817
2827
  --tw-shadow-color: initial;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/theme/typography/styles.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDvB,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;CACzD;AAED,eAAO,MAAM,OAAO,EAAE,MA8TrB,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/theme/typography/styles.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDvB,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;CACzD;AAED,eAAO,MAAM,OAAO,EAAE,MA+TrB,CAAC"}
@@ -262,7 +262,7 @@ export const DEFAULT = {
262
262
  h1: {
263
263
  color: 'var(--tw-prose-headings)',
264
264
  fontWeight: '800',
265
- fontSize: em(36, 16),
265
+ fontSize: 'var(--text-3xl)',
266
266
  marginTop: '0',
267
267
  marginBottom: em(32, 36),
268
268
  lineHeight: round(40 / 36),
@@ -362,6 +362,7 @@ export const DEFAULT = {
362
362
  },
363
363
  'h1 code': {
364
364
  color: 'inherit',
365
+ fontSize: 'var(--text-2xl)',
365
366
  },
366
367
  'h2 code': {
367
368
  color: 'inherit',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-ui",
3
- "version": "15.2.7",
3
+ "version": "15.2.9",
4
4
  "description": "The framework for building a documentation website in Next.js",
5
5
  "keywords": [
6
6
  "NextJs",
@@ -79,25 +79,25 @@
79
79
  "@radix-ui/react-tabs": "^1.1.4",
80
80
  "class-variance-authority": "^0.7.1",
81
81
  "lodash.merge": "^4.6.2",
82
- "lucide-react": "^0.487.0",
82
+ "lucide-react": "^0.488.0",
83
83
  "next-themes": "^0.4.6",
84
84
  "postcss-selector-parser": "^7.1.0",
85
85
  "react-medium-image-zoom": "^5.2.14",
86
86
  "tailwind-merge": "^3.2.0",
87
- "fumadocs-core": "15.2.7"
87
+ "fumadocs-core": "15.2.9"
88
88
  },
89
89
  "devDependencies": {
90
- "@next/eslint-plugin-next": "^15.3.0",
91
- "@tailwindcss/cli": "^4.1.3",
90
+ "@next/eslint-plugin-next": "^15.3.1",
91
+ "@tailwindcss/cli": "^4.1.4",
92
92
  "@types/lodash.merge": "^4.6.9",
93
- "@types/react": "^19.1.0",
93
+ "@types/react": "^19.1.2",
94
94
  "@types/react-dom": "^19.1.2",
95
- "next": "15.3.0",
96
- "tailwindcss": "^4.1.3",
95
+ "next": "15.3.1",
96
+ "tailwindcss": "^4.1.4",
97
97
  "tsc-alias": "^1.8.15",
98
98
  "@fumadocs/cli": "0.1.1",
99
99
  "eslint-config-custom": "0.0.0",
100
- "fumadocs-core": "15.2.7",
100
+ "fumadocs-core": "15.2.9",
101
101
  "tsconfig": "0.0.0"
102
102
  },
103
103
  "peerDependencies": {