fumadocs-ui 15.2.14 → 15.3.0

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.
Files changed (42) hide show
  1. package/css/black.css +2 -2
  2. package/css/neutral.css +2 -2
  3. package/css/ocean.css +3 -3
  4. package/css/preset.css +194 -5
  5. package/css/purple.css +10 -10
  6. package/css/shiki.css +14 -23
  7. package/dist/components/accordion.js +1 -1
  8. package/dist/components/codeblock.d.ts.map +1 -1
  9. package/dist/components/codeblock.js +5 -5
  10. package/dist/components/layout/root-toggle.d.ts +3 -3
  11. package/dist/components/layout/root-toggle.d.ts.map +1 -1
  12. package/dist/components/layout/root-toggle.js +1 -1
  13. package/dist/components/layout/sidebar.d.ts +14 -11
  14. package/dist/components/layout/sidebar.d.ts.map +1 -1
  15. package/dist/components/layout/sidebar.js +42 -33
  16. package/dist/components/tabs.d.ts +3 -1
  17. package/dist/components/tabs.d.ts.map +1 -1
  18. package/dist/components/tabs.js +25 -36
  19. package/dist/components/ui/tabs.d.ts.map +1 -1
  20. package/dist/components/ui/tabs.js +4 -4
  21. package/dist/contexts/sidebar.d.ts.map +1 -1
  22. package/dist/contexts/sidebar.js +2 -3
  23. package/dist/layouts/docs/shared.d.ts +0 -1
  24. package/dist/layouts/docs/shared.d.ts.map +1 -1
  25. package/dist/layouts/docs-client.d.ts.map +1 -1
  26. package/dist/layouts/docs-client.js +8 -8
  27. package/dist/layouts/docs.d.ts.map +1 -1
  28. package/dist/layouts/docs.js +2 -3
  29. package/dist/layouts/home/navbar.d.ts +2 -2
  30. package/dist/layouts/home/navbar.d.ts.map +1 -1
  31. package/dist/layouts/home/navbar.js +6 -3
  32. package/dist/layouts/notebook-client.d.ts.map +1 -1
  33. package/dist/layouts/notebook-client.js +4 -5
  34. package/dist/layouts/notebook.d.ts.map +1 -1
  35. package/dist/layouts/notebook.js +8 -8
  36. package/dist/page-client.d.ts.map +1 -1
  37. package/dist/page-client.js +3 -5
  38. package/dist/page.d.ts +2 -2
  39. package/dist/page.d.ts.map +1 -1
  40. package/dist/style.css +133 -131
  41. package/package.json +15 -13
  42. package/css/animations.css +0 -199
@@ -6,7 +6,6 @@ import Link from 'fumadocs-core/link';
6
6
  import { cn } from './utils/cn.js';
7
7
  import { useI18n } from './contexts/i18n.js';
8
8
  import { useTreeContext, useTreePath } from './contexts/tree.js';
9
- import { useSidebar } from './contexts/sidebar.js';
10
9
  import { createContext, usePathname } from 'fumadocs-core/framework';
11
10
  import { getBreadcrumbItemsFromPath, } from 'fumadocs-core/breadcrumb';
12
11
  import { useNav, usePageStyles } from './contexts/layout.js';
@@ -21,8 +20,8 @@ export function TocPopoverTrigger({ items, ...props }) {
21
20
  const active = Primitive.useActiveAnchor();
22
21
  const selected = useMemo(() => items.findIndex((item) => active === item.url.slice(1)), [items, active]);
23
22
  const path = useTreePath().at(-1);
24
- const showCurrent = selected !== -1 && !open;
25
- return (_jsxs(CollapsibleTrigger, { ...props, className: cn('flex flex-row items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&_svg]:shrink-0 [&_svg]:size-4 md:px-6', props.className), children: [_jsx(ProgressCircle, { value: (selected + 1) / items.length, max: 1, className: cn(open && 'text-fd-primary') }), _jsxs("span", { className: cn('grid flex-1 *:row-start-1 *:col-start-1', open && 'text-fd-foreground'), children: [_jsx("span", { className: cn('truncate transition-all', showCurrent && 'opacity-0 -translate-y-full pointer-events-none'), children: path?.name ?? text.toc }), _jsx("span", { className: cn('truncate transition-all', !showCurrent && 'opacity-0 translate-y-full pointer-events-none'), children: items[selected]?.title })] }), _jsx(ChevronDown, { className: cn('transition-transform', open && 'rotate-180') })] }));
23
+ const showItem = selected !== -1 && !open;
24
+ return (_jsxs(CollapsibleTrigger, { ...props, className: cn('flex flex-row items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&_svg]:shrink-0 [&_svg]:size-4 md:px-6', props.className), children: [_jsx(ProgressCircle, { value: (selected + 1) / items.length, max: 1, className: cn(open && 'text-fd-primary') }), _jsxs("span", { className: "grid flex-1 *:row-start-1 *:col-start-1", children: [_jsx("span", { className: cn('truncate transition-all', open && 'text-fd-foreground', showItem && 'opacity-0 -translate-y-full pointer-events-none'), children: path?.name ?? text.toc }), _jsx("span", { className: cn('truncate transition-all', !showItem && 'opacity-0 translate-y-full pointer-events-none'), children: items[selected]?.title })] }), _jsx(ChevronDown, { className: cn('opacity-50 transition-transform', open && 'rotate-180') })] }));
26
25
  }
27
26
  function clamp(input, min, max) {
28
27
  if (input < min)
@@ -51,7 +50,6 @@ export function TocPopoverContent(props) {
51
50
  export function TocPopover(props) {
52
51
  const ref = useRef(null);
53
52
  const [open, setOpen] = useState(false);
54
- const sidebar = useSidebar();
55
53
  const { tocNav } = usePageStyles();
56
54
  const { isTransparent } = useNav();
57
55
  const onClick = useEffectEvent((e) => {
@@ -72,7 +70,7 @@ export function TocPopover(props) {
72
70
  }, children: _jsx(TocPopoverContext.Provider, { value: useMemo(() => ({
73
71
  open,
74
72
  setOpen,
75
- }), [setOpen, open]), children: _jsx(Collapsible, { open: open, onOpenChange: setOpen, asChild: true, children: _jsx("header", { ref: ref, id: "nd-tocnav", ...props, className: cn('border-b border-fd-foreground/10 backdrop-blur-sm transition-colors', (!isTransparent || open) && 'bg-fd-background/80', open && 'shadow-lg', sidebar.open && 'max-md:hidden'), children: props.children }) }) }) }));
73
+ }), [setOpen, open]), children: _jsx(Collapsible, { open: open, onOpenChange: setOpen, asChild: true, children: _jsx("header", { ref: ref, id: "nd-tocnav", ...props, className: cn('border-b backdrop-blur-sm transition-colors', (!isTransparent || open) && 'bg-fd-background/80', open && 'shadow-lg'), children: props.children }) }) }) }));
76
74
  }
77
75
  export function PageBody(props) {
78
76
  const { page } = usePageStyles();
package/dist/page.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { TableOfContents } from 'fumadocs-core/server';
2
- import { type AnchorHTMLAttributes, type ComponentProps, type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type ComponentProps, type HTMLAttributes, type ReactNode } from 'react';
3
3
  import { type AnchorProviderProps } from 'fumadocs-core/toc';
4
4
  import { type BreadcrumbProps, type FooterProps } from './page-client.js';
5
5
  import { type TOCProps } from './components/layout/toc.js';
@@ -12,7 +12,7 @@ type TableOfContentOptions = Omit<TOCProps, 'items' | 'children'> & Pick<AnchorP
12
12
  style?: 'normal' | 'clerk';
13
13
  };
14
14
  type TableOfContentPopoverOptions = Omit<TableOfContentOptions, 'single'>;
15
- interface EditOnGitHubOptions extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'children'> {
15
+ interface EditOnGitHubOptions extends Omit<ComponentProps<'a'>, 'href' | 'children'> {
16
16
  owner: string;
17
17
  repo: string;
18
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"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"}
package/dist/style.css CHANGED
@@ -47,13 +47,24 @@
47
47
  --color-fd-popover-foreground: hsl(0, 0%, 15.1%);
48
48
  --color-fd-card: hsl(0, 0%, 94.7%);
49
49
  --color-fd-card-foreground: hsl(0, 0%, 3.9%);
50
- --color-fd-border: hsl(0, 0%, 89.8%);
50
+ --color-fd-border: hsla(0, 0%, 62%, 20%);
51
51
  --color-fd-primary: hsl(0, 0%, 9%);
52
52
  --color-fd-primary-foreground: hsl(0, 0%, 98%);
53
53
  --color-fd-secondary: hsl(0, 0%, 93.1%);
54
54
  --color-fd-secondary-foreground: hsl(0, 0%, 9%);
55
55
  --color-fd-accent: hsl(0, 0%, 90.1%);
56
56
  --color-fd-accent-foreground: hsl(0, 0%, 9%);
57
+ --spacing-fd-container: 1400px;
58
+ --fd-sidebar-width: 0px;
59
+ --fd-toc-width: 0px;
60
+ --fd-layout-width: 100vw;
61
+ --fd-banner-height: 0px;
62
+ --fd-nav-height: 0px;
63
+ --fd-tocnav-height: 0px;
64
+ --color-fd-diff-remove: rgba(200, 10, 100, 0.12);
65
+ --color-fd-diff-remove-symbol: rgb(230, 10, 100);
66
+ --color-fd-diff-add: rgba(14, 180, 100, 0.12);
67
+ --color-fd-diff-add-symbol: rgb(10, 200, 100);
57
68
  --animate-fd-fade-in: fd-fade-in 300ms ease;
58
69
  --animate-fd-fade-out: fd-fade-out 300ms ease;
59
70
  --animate-fd-dialog-in: fd-dialog-in 200ms cubic-bezier(0.32, 0.72, 0, 1);
@@ -70,17 +81,6 @@
70
81
  --animate-fd-enterFromRight: fd-enterFromRight 250ms ease;
71
82
  --animate-fd-exitToLeft: fd-exitToLeft 250ms ease;
72
83
  --animate-fd-exitToRight: fd-exitToRight 250ms ease;
73
- --spacing-fd-container: 1400px;
74
- --fd-sidebar-width: 0px;
75
- --fd-toc-width: 0px;
76
- --fd-layout-width: 100vw;
77
- --fd-banner-height: 0px;
78
- --fd-nav-height: 0px;
79
- --fd-tocnav-height: 0px;
80
- --fd-diff-remove-color: rgba(200, 10, 100, 0.12);
81
- --fd-diff-remove-symbol-color: rgb(230, 10, 100);
82
- --fd-diff-add-color: rgba(14, 180, 100, 0.12);
83
- --fd-diff-add-symbol-color: rgb(10, 200, 100);
84
84
  }
85
85
  }
86
86
  @layer base {
@@ -238,6 +238,9 @@
238
238
  .collapse {
239
239
  visibility: collapse;
240
240
  }
241
+ .invisible {
242
+ visibility: hidden;
243
+ }
241
244
  .visible {
242
245
  visibility: visible;
243
246
  }
@@ -297,8 +300,8 @@
297
300
  .inset-y-0 {
298
301
  inset-block: calc(var(--spacing) * 0);
299
302
  }
300
- .inset-y-2 {
301
- inset-block: calc(var(--spacing) * 2);
303
+ .inset-y-3 {
304
+ inset-block: calc(var(--spacing) * 3);
302
305
  }
303
306
  .start-0 {
304
307
  inset-inline-start: calc(var(--spacing) * 0);
@@ -318,6 +321,9 @@
318
321
  .top-\(--fd-nav-height\) {
319
322
  top: var(--fd-nav-height);
320
323
  }
324
+ .top-\(--fd-sidebar-top\) {
325
+ top: var(--fd-sidebar-top);
326
+ }
321
327
  .top-\(--fd-top\) {
322
328
  top: var(--fd-top);
323
329
  }
@@ -348,6 +354,9 @@
348
354
  .bottom-1\.5 {
349
355
  bottom: calc(var(--spacing) * 1.5);
350
356
  }
357
+ .left-\(--fd-nav-left\) {
358
+ left: var(--fd-nav-left);
359
+ }
351
360
  .left-1\/2 {
352
361
  left: calc(1/2 * 100%);
353
362
  }
@@ -421,9 +430,6 @@
421
430
  .my-auto {
422
431
  margin-block: auto;
423
432
  }
424
- .-ms-1 {
425
- margin-inline-start: calc(var(--spacing) * -1);
426
- }
427
433
  .-ms-1\.5 {
428
434
  margin-inline-start: calc(var(--spacing) * -1.5);
429
435
  }
@@ -436,6 +442,9 @@
436
442
  .ms-auto {
437
443
  margin-inline-start: auto;
438
444
  }
445
+ .-me-\(--fd-sidebar-width\) {
446
+ margin-inline-end: calc(var(--fd-sidebar-width) * -1);
447
+ }
439
448
  .-me-1\.5 {
440
449
  margin-inline-end: calc(var(--spacing) * -1.5);
441
450
  }
@@ -911,6 +920,9 @@
911
920
  .h-\(--fd-height\) {
912
921
  height: var(--fd-height);
913
922
  }
923
+ .h-\(--fd-sidebar-height\) {
924
+ height: var(--fd-sidebar-height);
925
+ }
914
926
  .h-\(--fd-toc-height\) {
915
927
  height: var(--fd-toc-height);
916
928
  }
@@ -950,6 +962,9 @@
950
962
  .min-h-10 {
951
963
  min-height: calc(var(--spacing) * 10);
952
964
  }
965
+ .w-\(--fd-sidebar-width\) {
966
+ width: var(--fd-sidebar-width);
967
+ }
953
968
  .w-\(--fd-toc-width\) {
954
969
  width: var(--fd-toc-width);
955
970
  }
@@ -971,6 +986,9 @@
971
986
  .w-\[45\%\] {
972
987
  width: 45%;
973
988
  }
989
+ .w-\[85\%\] {
990
+ width: 85%;
991
+ }
974
992
  .w-\[98vw\] {
975
993
  width: 98vw;
976
994
  }
@@ -992,6 +1010,9 @@
992
1010
  .max-w-\[240px\] {
993
1011
  max-width: 240px;
994
1012
  }
1013
+ .max-w-\[380px\] {
1014
+ max-width: 380px;
1015
+ }
995
1016
  .max-w-\[400px\] {
996
1017
  max-width: 400px;
997
1018
  }
@@ -1031,10 +1052,18 @@
1031
1052
  .origin-\[top_center\] {
1032
1053
  transform-origin: top center;
1033
1054
  }
1055
+ .-translate-x-\(--fd-sidebar-offset\) {
1056
+ --tw-translate-x: calc(var(--fd-sidebar-offset) * -1);
1057
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1058
+ }
1034
1059
  .-translate-x-1\/2 {
1035
1060
  --tw-translate-x: calc(calc(1/2 * 100%) * -1);
1036
1061
  translate: var(--tw-translate-x) var(--tw-translate-y);
1037
1062
  }
1063
+ .translate-x-0 {
1064
+ --tw-translate-x: calc(var(--spacing) * 0);
1065
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1066
+ }
1038
1067
  .-translate-y-1\/2 {
1039
1068
  --tw-translate-y: calc(calc(1/2 * 100%) * -1);
1040
1069
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1128,6 +1157,9 @@
1128
1157
  .gap-3 {
1129
1158
  gap: calc(var(--spacing) * 3);
1130
1159
  }
1160
+ .gap-3\.5 {
1161
+ gap: calc(var(--spacing) * 3.5);
1162
+ }
1131
1163
  .gap-4 {
1132
1164
  gap: calc(var(--spacing) * 4);
1133
1165
  }
@@ -1183,6 +1215,10 @@
1183
1215
  .rounded-xl {
1184
1216
  border-radius: var(--radius-xl);
1185
1217
  }
1218
+ .rounded-e-xl {
1219
+ border-start-end-radius: var(--radius-xl);
1220
+ border-end-end-radius: var(--radius-xl);
1221
+ }
1186
1222
  .border {
1187
1223
  border-style: var(--tw-border-style);
1188
1224
  border-width: 1px;
@@ -1195,6 +1231,10 @@
1195
1231
  border-inline-start-style: var(--tw-border-style);
1196
1232
  border-inline-start-width: 2px;
1197
1233
  }
1234
+ .border-e {
1235
+ border-inline-end-style: var(--tw-border-style);
1236
+ border-inline-end-width: 1px;
1237
+ }
1198
1238
  .border-t {
1199
1239
  border-top-style: var(--tw-border-style);
1200
1240
  border-top-width: 1px;
@@ -1417,8 +1457,8 @@
1417
1457
  .pt-0 {
1418
1458
  padding-top: calc(var(--spacing) * 0);
1419
1459
  }
1420
- .pt-2 {
1421
- padding-top: calc(var(--spacing) * 2);
1460
+ .pt-4 {
1461
+ padding-top: calc(var(--spacing) * 4);
1422
1462
  }
1423
1463
  .pt-8 {
1424
1464
  padding-top: calc(var(--spacing) * 8);
@@ -1432,9 +1472,6 @@
1432
1472
  .pb-2 {
1433
1473
  padding-bottom: calc(var(--spacing) * 2);
1434
1474
  }
1435
- .pb-4 {
1436
- padding-bottom: calc(var(--spacing) * 4);
1437
- }
1438
1475
  .pb-6 {
1439
1476
  padding-bottom: calc(var(--spacing) * 6);
1440
1477
  }
@@ -1550,6 +1587,9 @@
1550
1587
  .opacity-0 {
1551
1588
  opacity: 0%;
1552
1589
  }
1590
+ .opacity-50 {
1591
+ opacity: 50%;
1592
+ }
1553
1593
  .shadow-lg {
1554
1594
  --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1555
1595
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -1626,6 +1666,10 @@
1626
1666
  --tw-duration: 300ms;
1627
1667
  transition-duration: 300ms;
1628
1668
  }
1669
+ .outline-none {
1670
+ --tw-outline-style: none;
1671
+ outline-style: none;
1672
+ }
1629
1673
  .select-none {
1630
1674
  -webkit-user-select: none;
1631
1675
  user-select: none;
@@ -1649,6 +1693,16 @@
1649
1693
  grid-row-start: 1;
1650
1694
  }
1651
1695
  }
1696
+ .\*\:block {
1697
+ :is(& > *) {
1698
+ display: block;
1699
+ }
1700
+ }
1701
+ .\*\:w-full {
1702
+ :is(& > *) {
1703
+ width: 100%;
1704
+ }
1705
+ }
1652
1706
  .group-hover\:opacity-100 {
1653
1707
  &:is(:where(.group):hover *) {
1654
1708
  @media (hover: hover) {
@@ -1863,6 +1917,11 @@
1863
1917
  animation: var(--animate-fd-dialog-out);
1864
1918
  }
1865
1919
  }
1920
+ .data-\[state\=closed\]\:animate-fd-exitToLeft {
1921
+ &[data-state="closed"] {
1922
+ animation: var(--animate-fd-exitToLeft);
1923
+ }
1924
+ }
1866
1925
  .data-\[state\=closed\]\:animate-fd-fade-out {
1867
1926
  &[data-state="closed"] {
1868
1927
  animation: var(--animate-fd-fade-out);
@@ -1898,6 +1957,11 @@
1898
1957
  animation: var(--animate-fd-dialog-in);
1899
1958
  }
1900
1959
  }
1960
+ .data-\[state\=open\]\:animate-fd-enterFromLeft {
1961
+ &[data-state="open"] {
1962
+ animation: var(--animate-fd-enterFromLeft);
1963
+ }
1964
+ }
1901
1965
  .data-\[state\=open\]\:animate-fd-fade-in {
1902
1966
  &[data-state="open"] {
1903
1967
  animation: var(--animate-fd-fade-in);
@@ -1961,31 +2025,19 @@
1961
2025
  background-color: var(--color-fd-background);
1962
2026
  }
1963
2027
  }
1964
- .max-md\:bg-fd-background\/80 {
2028
+ .max-md\:pt-6 {
1965
2029
  @media (width < 48rem) {
1966
- background-color: color-mix(in srgb, hsl(0, 0%, 96%) 80%, transparent);
1967
- @supports (color: color-mix(in lab, red, red)) {
1968
- background-color: color-mix(in oklab, var(--color-fd-background) 80%, transparent);
1969
- }
2030
+ padding-top: calc(var(--spacing) * 6);
1970
2031
  }
1971
2032
  }
1972
- .max-md\:text-\[15px\] {
2033
+ .max-md\:pb-4 {
1973
2034
  @media (width < 48rem) {
1974
- font-size: 15px;
2035
+ padding-bottom: calc(var(--spacing) * 4);
1975
2036
  }
1976
2037
  }
1977
- .max-md\:backdrop-blur-lg {
2038
+ .max-md\:pb-6 {
1978
2039
  @media (width < 48rem) {
1979
- --tw-backdrop-blur: blur(var(--blur-lg));
1980
- -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
1981
- backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
1982
- }
1983
- }
1984
- .max-md\:data-\[open\=false\]\:invisible {
1985
- @media (width < 48rem) {
1986
- &[data-open="false"] {
1987
- visibility: hidden;
1988
- }
2040
+ padding-bottom: calc(var(--spacing) * 6);
1989
2041
  }
1990
2042
  }
1991
2043
  .max-sm\:mt-2 {
@@ -2023,19 +2075,14 @@
2023
2075
  position: sticky;
2024
2076
  }
2025
2077
  }
2026
- .md\:mx-auto {
2078
+ .md\:inset-y-2 {
2027
2079
  @media (width >= 48rem) {
2028
- margin-inline: auto;
2029
- }
2030
- }
2031
- .md\:ms-auto {
2032
- @media (width >= 48rem) {
2033
- margin-inline-start: auto;
2080
+ inset-block: calc(var(--spacing) * 2);
2034
2081
  }
2035
2082
  }
2036
- .md\:-me-\(--fd-sidebar-width\) {
2083
+ .md\:mx-auto {
2037
2084
  @media (width >= 48rem) {
2038
- margin-inline-end: calc(var(--fd-sidebar-width) * -1);
2085
+ margin-inline: auto;
2039
2086
  }
2040
2087
  }
2041
2088
  .md\:hidden {
@@ -2043,47 +2090,24 @@
2043
2090
  display: none;
2044
2091
  }
2045
2092
  }
2046
- .md\:h-\(--fd-sidebar-height\) {
2047
- @media (width >= 48rem) {
2048
- height: var(--fd-sidebar-height);
2049
- }
2050
- }
2051
2093
  .md\:h-\[calc\(100dvh-56px\)\] {
2052
2094
  @media (width >= 48rem) {
2053
2095
  height: calc(100dvh - 56px);
2054
2096
  }
2055
2097
  }
2056
- .md\:w-\(--fd-sidebar-width\) {
2057
- @media (width >= 48rem) {
2058
- width: var(--fd-sidebar-width);
2059
- }
2060
- }
2061
2098
  .md\:w-\[300px\] {
2062
2099
  @media (width >= 48rem) {
2063
2100
  width: 300px;
2064
2101
  }
2065
2102
  }
2066
- .md\:-translate-x-\(--fd-sidebar-offset\) {
2067
- @media (width >= 48rem) {
2068
- --tw-translate-x: calc(var(--fd-sidebar-offset) * -1);
2069
- translate: var(--tw-translate-x) var(--tw-translate-y);
2070
- }
2071
- }
2072
- .md\:translate-x-0 {
2073
- @media (width >= 48rem) {
2074
- --tw-translate-x: calc(var(--spacing) * 0);
2075
- translate: var(--tw-translate-x) var(--tw-translate-y);
2076
- }
2077
- }
2078
2103
  .md\:grid-cols-2 {
2079
2104
  @media (width >= 48rem) {
2080
2105
  grid-template-columns: repeat(2, minmax(0, 1fr));
2081
2106
  }
2082
2107
  }
2083
- .md\:border-e {
2108
+ .md\:bg-transparent {
2084
2109
  @media (width >= 48rem) {
2085
- border-inline-end-style: var(--tw-border-style);
2086
- border-inline-end-width: 1px;
2110
+ background-color: transparent;
2087
2111
  }
2088
2112
  }
2089
2113
  .md\:px-6 {
@@ -2101,36 +2125,21 @@
2101
2125
  padding-inline-start: var(--fd-layout-offset);
2102
2126
  }
2103
2127
  }
2104
- .md\:pt-2\.5 {
2105
- @media (width >= 48rem) {
2106
- padding-top: calc(var(--spacing) * 2.5);
2107
- }
2108
- }
2109
- .md\:pt-3\.5 {
2110
- @media (width >= 48rem) {
2111
- padding-top: calc(var(--spacing) * 3.5);
2112
- }
2113
- }
2114
- .md\:pt-4 {
2115
- @media (width >= 48rem) {
2116
- padding-top: calc(var(--spacing) * 4);
2117
- }
2118
- }
2119
2128
  .md\:pt-12 {
2120
2129
  @media (width >= 48rem) {
2121
2130
  padding-top: calc(var(--spacing) * 12);
2122
2131
  }
2123
2132
  }
2124
- .md\:opacity-0 {
2133
+ .md\:text-sm {
2125
2134
  @media (width >= 48rem) {
2126
- opacity: 0%;
2135
+ font-size: var(--text-sm);
2136
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2127
2137
  }
2128
2138
  }
2129
- .md\:transition-all {
2139
+ .md\:text-xs {
2130
2140
  @media (width >= 48rem) {
2131
- transition-property: all;
2132
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2133
- transition-duration: var(--tw-duration, var(--default-transition-duration));
2141
+ font-size: var(--text-xs);
2142
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2134
2143
  }
2135
2144
  }
2136
2145
  .md\:\[--fd-nav-height\:0px\] {
@@ -2239,6 +2248,12 @@
2239
2248
  grid-column: 1 / -1;
2240
2249
  }
2241
2250
  }
2251
+ .rtl\:translate-x-\(--fd-sidebar-offset\) {
2252
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
2253
+ --tw-translate-x: var(--fd-sidebar-offset);
2254
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2255
+ }
2256
+ }
2242
2257
  .rtl\:-scale-x-100 {
2243
2258
  &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
2244
2259
  --tw-scale-x: calc(100% * -1);
@@ -2250,14 +2265,6 @@
2250
2265
  rotate: 180deg;
2251
2266
  }
2252
2267
  }
2253
- .rtl\:md\:translate-x-\(--fd-sidebar-offset\) {
2254
- &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
2255
- @media (width >= 48rem) {
2256
- --tw-translate-x: var(--fd-sidebar-offset);
2257
- translate: var(--tw-translate-x) var(--tw-translate-y);
2258
- }
2259
- }
2260
- }
2261
2268
  .dark\:bg-\(--shiki-dark-bg\) {
2262
2269
  &:where(.dark, .dark *) {
2263
2270
  background-color: var(--shiki-dark-bg);
@@ -2311,11 +2318,6 @@
2311
2318
  margin: calc(var(--spacing) * -4);
2312
2319
  }
2313
2320
  }
2314
- .\[\&\>figure\:only-child\]\:rounded-none {
2315
- &>figure:only-child {
2316
- border-radius: 0;
2317
- }
2318
- }
2319
2321
  .\[\&\>figure\:only-child\]\:border-none {
2320
2322
  &>figure:only-child {
2321
2323
  --tw-border-style: none;
@@ -2337,7 +2339,7 @@
2337
2339
  --color-fd-popover-foreground: hsl(0, 0%, 88%);
2338
2340
  --color-fd-card: hsl(0, 0%, 9.8%);
2339
2341
  --color-fd-card-foreground: hsl(0, 0%, 98%);
2340
- --color-fd-border: hsl(0, 0%, 14%);
2342
+ --color-fd-border: hsla(0, 0%, 40%, 20%);
2341
2343
  --color-fd-primary: hsl(0, 0%, 98%);
2342
2344
  --color-fd-primary-foreground: hsl(0, 0%, 9%);
2343
2345
  --color-fd-secondary: hsl(0, 0%, 12.9%);
@@ -2351,45 +2353,45 @@
2351
2353
  --color-fd-secondary: hsl(0, 0%, 18%);
2352
2354
  --color-fd-muted-foreground: hsl(0, 0%, 72%);
2353
2355
  }
2354
- .fd-codeblock pre > * {
2355
- display: grid;
2356
- font-size: 13px;
2357
- }
2358
2356
  .shiki:not(.not-fumadocs-codeblock *) {
2359
2357
  code span {
2360
2358
  color: var(--shiki-light);
2361
2359
  }
2362
- code .diff.remove {
2363
- background-color: var(--fd-diff-remove-color);
2364
- opacity: 0.7;
2365
- }
2366
2360
  code .diff::before {
2367
2361
  position: absolute;
2368
2362
  left: 6px;
2369
2363
  }
2364
+ code .diff.remove {
2365
+ opacity: 0.7;
2366
+ background-color: var(--color-fd-diff-remove);
2367
+ }
2370
2368
  code .diff.remove::before {
2371
2369
  content: '-';
2372
- color: var(--fd-diff-remove-symbol-color);
2370
+ color: var(--color-fd-diff-remove-symbol);
2373
2371
  }
2374
2372
  code .diff.add {
2375
- background-color: var(--fd-diff-add-color);
2373
+ background-color: var(--color-fd-diff-add);
2376
2374
  }
2377
2375
  code .diff.add::before {
2378
2376
  content: '+';
2379
- color: var(--fd-diff-add-symbol-color);
2377
+ color: var(--color-fd-diff-add-symbol);
2380
2378
  }
2381
2379
  code .diff {
2382
- margin: 0 -16px;
2383
- padding: 0 16px;
2380
+ width: calc(100% + 8 * var(--spacing));
2384
2381
  position: relative;
2382
+ margin-inline: calc(var(--spacing) * -4);
2383
+ display: inline-block;
2384
+ padding-inline: calc(var(--spacing) * 4);
2385
2385
  }
2386
2386
  .highlighted {
2387
- margin: 0 -16px;
2388
- padding: 0 16px;
2389
- background-color: color-mix( in oklab, hsl(0, 0%, 9%) 10%, transparent );
2387
+ width: calc(100% + 8 * var(--spacing));
2388
+ margin-inline: calc(var(--spacing) * -4);
2389
+ display: inline-block;
2390
+ background-color: color-mix(in srgb, hsl(0, 0%, 9%) 10%, transparent);
2390
2391
  @supports (color: color-mix(in lab, red, red)) {
2391
- background-color: color-mix( in oklab, var(--color-fd-primary) 10%, transparent );
2392
+ background-color: color-mix(in oklab, var(--color-fd-primary) 10%, transparent);
2392
2393
  }
2394
+ padding-inline: calc(var(--spacing) * 4);
2393
2395
  }
2394
2396
  .highlighted-word {
2395
2397
  padding: 1px 2px;
@@ -2704,7 +2706,7 @@
2704
2706
  }
2705
2707
  @keyframes fd-dialog-in {
2706
2708
  from {
2707
- transform: scale(0.95);
2709
+ transform: scale(1.06);
2708
2710
  opacity: 0;
2709
2711
  }
2710
2712
  to {
@@ -2716,18 +2718,18 @@
2716
2718
  transform: scale(1);
2717
2719
  }
2718
2720
  to {
2719
- transform: scale(0.95);
2721
+ transform: scale(1.06);
2720
2722
  opacity: 0;
2721
2723
  }
2722
2724
  }
2723
2725
  @keyframes fd-popover-in {
2724
2726
  from {
2725
2727
  opacity: 0;
2726
- transform: scale(0.98) translateY(-4px);
2728
+ transform: translateY(-12px);
2727
2729
  }
2728
2730
  to {
2729
2731
  opacity: 1;
2730
- transform: scale(1) translateY(0);
2732
+ transform: translateY(0);
2731
2733
  }
2732
2734
  }
2733
2735
  @keyframes fd-popover-out {
@@ -2737,7 +2739,7 @@
2737
2739
  }
2738
2740
  to {
2739
2741
  opacity: 0;
2740
- transform: translateY(-4px);
2742
+ transform: translateY(-12px);
2741
2743
  }
2742
2744
  }
2743
2745
  @keyframes fd-fade-in {