fumadocs-ui 16.2.5 → 16.3.1

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 (150) hide show
  1. package/README.md +1 -1
  2. package/css/black.css +1 -39
  3. package/css/catppuccin.css +1 -49
  4. package/css/dusk.css +1 -47
  5. package/css/neutral.css +1 -7
  6. package/css/ocean.css +1 -48
  7. package/css/preset.css +1 -215
  8. package/css/purple.css +1 -39
  9. package/css/shadcn.css +1 -36
  10. package/css/solar.css +1 -75
  11. package/css/vitepress.css +1 -77
  12. package/dist/components/accordion.d.ts +5 -6
  13. package/dist/components/accordion.d.ts.map +1 -1
  14. package/dist/components/accordion.js +12 -14
  15. package/dist/components/banner.js +2 -2
  16. package/dist/components/callout.d.ts.map +1 -1
  17. package/dist/components/callout.js +2 -2
  18. package/dist/components/card.js +1 -1
  19. package/dist/components/codeblock.d.ts +1 -1
  20. package/dist/components/codeblock.d.ts.map +1 -1
  21. package/dist/components/codeblock.js +5 -5
  22. package/dist/components/dialog/search.js +2 -2
  23. package/dist/components/dynamic-codeblock.js +1 -1
  24. package/dist/components/files.js +2 -2
  25. package/dist/components/github-info.js +2 -2
  26. package/dist/components/heading.js +2 -2
  27. package/dist/components/inline-toc.js +2 -2
  28. package/dist/components/sidebar/base.d.ts +2 -2
  29. package/dist/components/sidebar/base.d.ts.map +1 -1
  30. package/dist/components/sidebar/base.js +4 -4
  31. package/dist/components/sidebar/link-item.d.ts +1 -1
  32. package/dist/components/sidebar/link-item.d.ts.map +1 -1
  33. package/dist/components/sidebar/tabs/dropdown.d.ts +1 -0
  34. package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -1
  35. package/dist/components/sidebar/tabs/dropdown.js +9 -4
  36. package/dist/components/tabs.d.ts +1 -1
  37. package/dist/components/tabs.d.ts.map +1 -1
  38. package/dist/components/tabs.js +2 -2
  39. package/dist/components/toc/clerk.d.ts +1 -2
  40. package/dist/components/toc/clerk.d.ts.map +1 -1
  41. package/dist/components/toc/clerk.js +1 -76
  42. package/dist/components/toc/default.d.ts +1 -2
  43. package/dist/components/toc/default.d.ts.map +1 -1
  44. package/dist/components/toc/default.js +1 -19
  45. package/dist/components/toc/index.d.ts +1 -10
  46. package/dist/components/toc/index.d.ts.map +1 -1
  47. package/dist/components/toc/index.js +1 -64
  48. package/dist/components/type-table.js +2 -2
  49. package/dist/components/ui/accordion.d.ts +8 -0
  50. package/dist/components/ui/accordion.d.ts.map +1 -0
  51. package/dist/components/ui/accordion.js +20 -0
  52. package/dist/components/ui/button.d.ts +1 -1
  53. package/dist/components/ui/collapsible.d.ts +7 -4
  54. package/dist/components/ui/collapsible.d.ts.map +1 -1
  55. package/dist/components/ui/collapsible.js +6 -7
  56. package/dist/components/ui/navigation-menu.d.ts +2 -0
  57. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  58. package/dist/components/ui/navigation-menu.js +1 -1
  59. package/dist/components/ui/popover.js +1 -1
  60. package/dist/components/ui/scroll-area.d.ts +5 -4
  61. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  62. package/dist/components/ui/scroll-area.js +8 -8
  63. package/dist/components/{tabs.unstyled.d.ts → ui/tabs.d.ts} +1 -1
  64. package/dist/components/ui/tabs.d.ts.map +1 -0
  65. package/dist/components/{tabs.unstyled.js → ui/tabs.js} +1 -1
  66. package/dist/contexts/i18n.d.ts +1 -29
  67. package/dist/contexts/i18n.d.ts.map +1 -1
  68. package/dist/contexts/i18n.js +1 -23
  69. package/dist/contexts/search.d.ts +1 -60
  70. package/dist/contexts/search.d.ts.map +1 -1
  71. package/dist/contexts/search.js +1 -58
  72. package/dist/contexts/tree.d.ts +1 -14
  73. package/dist/contexts/tree.d.ts.map +1 -1
  74. package/dist/contexts/tree.js +1 -31
  75. package/dist/i18n.d.ts +1 -14
  76. package/dist/i18n.d.ts.map +1 -1
  77. package/dist/i18n.js +1 -16
  78. package/dist/layouts/docs/client.d.ts.map +1 -1
  79. package/dist/layouts/docs/client.js +3 -3
  80. package/dist/layouts/docs/index.js +4 -4
  81. package/dist/layouts/docs/page/client.js +6 -6
  82. package/dist/layouts/docs/page/index.js +2 -2
  83. package/dist/layouts/docs/sidebar.d.ts +1 -1
  84. package/dist/layouts/docs/sidebar.js +4 -4
  85. package/dist/layouts/home/client.d.ts +1 -1
  86. package/dist/layouts/home/client.js +4 -4
  87. package/dist/layouts/home/index.js +1 -1
  88. package/dist/layouts/home/navbar.d.ts +1 -1
  89. package/dist/layouts/home/navbar.d.ts.map +1 -1
  90. package/dist/layouts/home/navbar.js +1 -1
  91. package/dist/layouts/notebook/client.d.ts +3 -3
  92. package/dist/layouts/notebook/client.d.ts.map +1 -1
  93. package/dist/layouts/notebook/client.js +5 -5
  94. package/dist/layouts/notebook/index.js +4 -4
  95. package/dist/layouts/notebook/page/client.js +6 -6
  96. package/dist/layouts/notebook/page/index.js +2 -2
  97. package/dist/layouts/notebook/sidebar.d.ts +1 -1
  98. package/dist/layouts/notebook/sidebar.js +2 -2
  99. package/dist/layouts/shared/index.d.ts +2 -2
  100. package/dist/layouts/shared/index.d.ts.map +1 -1
  101. package/dist/layouts/shared/language-toggle.js +1 -1
  102. package/dist/layouts/shared/search-toggle.js +2 -2
  103. package/dist/layouts/shared/theme-toggle.js +2 -2
  104. package/dist/mdx.js +1 -1
  105. package/dist/mdx.server.d.ts +1 -1
  106. package/dist/mdx.server.d.ts.map +1 -1
  107. package/dist/mdx.server.js +1 -14
  108. package/dist/og.d.ts +1 -14
  109. package/dist/og.d.ts.map +1 -1
  110. package/dist/og.js +1 -45
  111. package/dist/page.d.ts.map +1 -1
  112. package/dist/page.js +1 -1
  113. package/dist/provider/base.d.ts +3 -22
  114. package/dist/provider/base.d.ts.map +1 -1
  115. package/dist/provider/base.js +4 -34
  116. package/dist/style.css +74 -134
  117. package/dist/utils/use-copy-button.d.ts +1 -2
  118. package/dist/utils/use-copy-button.d.ts.map +1 -1
  119. package/dist/utils/use-copy-button.js +1 -27
  120. package/dist/utils/use-footer-items.d.ts +1 -5
  121. package/dist/utils/use-footer-items.d.ts.map +1 -1
  122. package/dist/utils/use-footer-items.js +1 -27
  123. package/dist/utils/use-is-scroll-top.d.ts +1 -3
  124. package/dist/utils/use-is-scroll-top.d.ts.map +1 -1
  125. package/dist/utils/use-is-scroll-top.js +1 -17
  126. package/package.json +10 -23
  127. package/css/colors/index.css +0 -51
  128. package/css/shiki.css +0 -90
  129. package/dist/components/tabs.unstyled.d.ts.map +0 -1
  130. package/dist/icons.d.ts +0 -49
  131. package/dist/icons.d.ts.map +0 -1
  132. package/dist/icons.js +0 -282
  133. package/dist/layouts/shared/link-item.d.ts +0 -78
  134. package/dist/layouts/shared/link-item.d.ts.map +0 -1
  135. package/dist/layouts/shared/link-item.js +0 -12
  136. package/dist/theme/typography/index.d.ts +0 -10
  137. package/dist/theme/typography/index.d.ts.map +0 -1
  138. package/dist/theme/typography/index.js +0 -137
  139. package/dist/theme/typography/styles.d.ts +0 -93
  140. package/dist/theme/typography/styles.d.ts.map +0 -1
  141. package/dist/theme/typography/styles.js +0 -433
  142. package/dist/utils/cn.d.ts +0 -2
  143. package/dist/utils/cn.d.ts.map +0 -1
  144. package/dist/utils/cn.js +0 -1
  145. package/dist/utils/is-active.d.ts +0 -4
  146. package/dist/utils/is-active.d.ts.map +0 -1
  147. package/dist/utils/is-active.js +0 -15
  148. package/dist/utils/merge-refs.d.ts +0 -3
  149. package/dist/utils/merge-refs.d.ts.map +0 -1
  150. package/dist/utils/merge-refs.js +0 -12
package/dist/style.css CHANGED
@@ -21,7 +21,6 @@
21
21
  --text-lg--line-height: calc(1.75 / 1.125);
22
22
  --text-2xl: 1.5rem;
23
23
  --text-3xl: 1.875rem;
24
- --text-3xl--line-height: calc(2.25 / 1.875);
25
24
  --font-weight-medium: 500;
26
25
  --font-weight-semibold: 600;
27
26
  --radius-sm: 0.25rem;
@@ -69,6 +68,12 @@
69
68
  --animate-fd-dialog-out: fd-dialog-out 300ms cubic-bezier(0.16, 1, 0.3, 1);
70
69
  --animate-fd-popover-in: fd-popover-in 100ms ease;
71
70
  --animate-fd-popover-out: fd-popover-out 100ms ease;
71
+ --animate-fd-enterFromLeft: fd-enterFromLeft 250ms ease;
72
+ --animate-fd-enterFromRight: fd-enterFromRight 250ms ease;
73
+ --animate-fd-sidebar-in: fd-sidebar-in 250ms ease;
74
+ --animate-fd-sidebar-out: fd-sidebar-out 250ms ease;
75
+ --animate-fd-exitToLeft: fd-exitToLeft 250ms ease;
76
+ --animate-fd-exitToRight: fd-exitToRight 250ms ease;
72
77
  --animate-fd-collapsible-down: fd-collapsible-down 150ms
73
78
  cubic-bezier(0.45, 0, 0.55, 1);
74
79
  --animate-fd-collapsible-up: fd-collapsible-up 150ms
@@ -77,12 +82,6 @@
77
82
  --animate-fd-accordion-up: fd-accordion-up 200ms ease-out;
78
83
  --animate-fd-nav-menu-in: fd-nav-menu-in 200ms ease;
79
84
  --animate-fd-nav-menu-out: fd-nav-menu-out 200ms ease;
80
- --animate-fd-enterFromLeft: fd-enterFromLeft 250ms ease;
81
- --animate-fd-enterFromRight: fd-enterFromRight 250ms ease;
82
- --animate-fd-sidebar-in: fd-sidebar-in 250ms ease;
83
- --animate-fd-sidebar-out: fd-sidebar-out 250ms ease;
84
- --animate-fd-exitToLeft: fd-exitToLeft 250ms ease;
85
- --animate-fd-exitToRight: fd-exitToRight 250ms ease;
86
85
  }
87
86
  }
88
87
  @layer base {
@@ -338,12 +337,6 @@
338
337
  .top-\(--fd-docs-row-3\) {
339
338
  top: var(--fd-docs-row-3);
340
339
  }
341
- .top-\(--fd-nav-height\) {
342
- top: var(--fd-nav-height);
343
- }
344
- .top-\(--fd-top\) {
345
- top: var(--fd-top);
346
- }
347
340
  .top-0 {
348
341
  top: calc(var(--spacing) * 0);
349
342
  }
@@ -359,11 +352,8 @@
359
352
  .top-4 {
360
353
  top: calc(var(--spacing) * 4);
361
354
  }
362
- .top-14 {
363
- top: calc(var(--spacing) * 14);
364
- }
365
- .top-\[calc\(--spacing\(4\)\+var\(--fd-toc-popover-height\)\)\] {
366
- top: calc(calc(var(--spacing) * 4) + var(--fd-toc-popover-height));
355
+ .top-\[calc\(--spacing\(4\)\+var\(--fd-docs-row-3\)\)\] {
356
+ top: calc(calc(var(--spacing) * 4) + var(--fd-docs-row-3));
367
357
  }
368
358
  .right-2 {
369
359
  right: calc(var(--spacing) * 2);
@@ -848,8 +838,8 @@
848
838
  margin-bottom: 0;
849
839
  }
850
840
  }
851
- .mt-\(--fd-top\) {
852
- margin-top: var(--fd-top);
841
+ .mt-1 {
842
+ margin-top: calc(var(--spacing) * 1);
853
843
  }
854
844
  .mt-6 {
855
845
  margin-top: calc(var(--spacing) * 6);
@@ -857,9 +847,6 @@
857
847
  .mt-px {
858
848
  margin-top: 1px;
859
849
  }
860
- .mr-auto {
861
- margin-right: auto;
862
- }
863
850
  .-mb-px {
864
851
  margin-bottom: -1px;
865
852
  }
@@ -983,9 +970,6 @@
983
970
  .h-\[400px\] {
984
971
  height: 400px;
985
972
  }
986
- .h-\[calc\(100dvh-var\(--fd-nav-height\)\)\] {
987
- height: calc(100dvh - var(--fd-nav-height));
988
- }
989
973
  .h-\[calc\(var\(--fd-docs-height\)-var\(--fd-docs-row-1\)\)\] {
990
974
  height: calc(var(--fd-docs-height) - var(--fd-docs-row-1));
991
975
  }
@@ -1049,9 +1033,6 @@
1049
1033
  .w-\[85\%\] {
1050
1034
  width: 85%;
1051
1035
  }
1052
- .w-\[286px\] {
1053
- width: 286px;
1054
- }
1055
1036
  .w-\[calc\(100\%-1rem\)\] {
1056
1037
  width: calc(100% - 1rem);
1057
1038
  }
@@ -1076,9 +1057,6 @@
1076
1057
  .max-w-\[380px\] {
1077
1058
  max-width: 380px;
1078
1059
  }
1079
- .max-w-\[860px\] {
1080
- max-width: 860px;
1081
- }
1082
1060
  .max-w-\[900px\] {
1083
1061
  max-width: 900px;
1084
1062
  }
@@ -1141,6 +1119,10 @@
1141
1119
  --tw-translate-y: -100%;
1142
1120
  translate: var(--tw-translate-x) var(--tw-translate-y);
1143
1121
  }
1122
+ .translate-y-\(--fd-top\) {
1123
+ --tw-translate-y: var(--fd-top);
1124
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1125
+ }
1144
1126
  .translate-y-full {
1145
1127
  --tw-translate-y: 100%;
1146
1128
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1489,9 +1471,6 @@
1489
1471
  .py-6 {
1490
1472
  padding-block: calc(var(--spacing) * 6);
1491
1473
  }
1492
- .py-8 {
1493
- padding-block: calc(var(--spacing) * 8);
1494
- }
1495
1474
  .py-12 {
1496
1475
  padding-block: calc(var(--spacing) * 12);
1497
1476
  }
@@ -1543,9 +1522,6 @@
1543
1522
  .pb-2 {
1544
1523
  padding-bottom: calc(var(--spacing) * 2);
1545
1524
  }
1546
- .pl-4 {
1547
- padding-left: calc(var(--spacing) * 4);
1548
- }
1549
1525
  .text-center {
1550
1526
  text-align: center;
1551
1527
  }
@@ -1558,10 +1534,6 @@
1558
1534
  .font-mono {
1559
1535
  font-family: var(--font-mono);
1560
1536
  }
1561
- .text-3xl {
1562
- font-size: var(--text-3xl);
1563
- line-height: var(--tw-leading, var(--text-3xl--line-height));
1564
- }
1565
1537
  .text-base {
1566
1538
  font-size: var(--text-base);
1567
1539
  line-height: var(--tw-leading, var(--text-base--line-height));
@@ -1587,6 +1559,10 @@
1587
1559
  .text-\[1\.75em\] {
1588
1560
  font-size: 1.75em;
1589
1561
  }
1562
+ .leading-none {
1563
+ --tw-leading: 1;
1564
+ line-height: 1;
1565
+ }
1590
1566
  .font-medium {
1591
1567
  --tw-font-weight: var(--font-weight-medium);
1592
1568
  font-weight: var(--font-weight-medium);
@@ -1655,9 +1631,6 @@
1655
1631
  .text-fd-secondary-foreground {
1656
1632
  color: var(--color-fd-secondary-foreground);
1657
1633
  }
1658
- .italic {
1659
- font-style: italic;
1660
- }
1661
1634
  .line-through {
1662
1635
  text-decoration-line: line-through;
1663
1636
  }
@@ -1711,11 +1684,6 @@
1711
1684
  -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,);
1712
1685
  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,);
1713
1686
  }
1714
- .transition {
1715
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
1716
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1717
- transition-duration: var(--tw-duration, var(--default-transition-duration));
1718
- }
1719
1687
  .transition-\[grid-template-columns\] {
1720
1688
  transition-property: grid-template-columns;
1721
1689
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -1726,6 +1694,21 @@
1726
1694
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1727
1695
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1728
1696
  }
1697
+ .transition-\[opacity\,translate\,color\] {
1698
+ transition-property: opacity,translate,color;
1699
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1700
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1701
+ }
1702
+ .transition-\[opacity\,translate\] {
1703
+ transition-property: opacity,translate;
1704
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1705
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1706
+ }
1707
+ .transition-\[translate\,height\] {
1708
+ transition-property: translate,height;
1709
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1710
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1711
+ }
1729
1712
  .transition-\[width\,height\] {
1730
1713
  transition-property: width,height;
1731
1714
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -1793,9 +1776,6 @@
1793
1776
  .\[--fd-layout-width\:1400px\] {
1794
1777
  --fd-layout-width: 1400px;
1795
1778
  }
1796
- .\[--fd-nav-height\:56px\] {
1797
- --fd-nav-height: 56px;
1798
- }
1799
1779
  .\[--fd-sidebar-width\:0px\] {
1800
1780
  --fd-sidebar-width: 0px;
1801
1781
  }
@@ -2388,21 +2368,6 @@
2388
2368
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2389
2369
  }
2390
2370
  }
2391
- .max-md\:invisible {
2392
- @media (width < 48rem) {
2393
- visibility: hidden;
2394
- }
2395
- }
2396
- .max-md\:inset-x-0 {
2397
- @media (width < 48rem) {
2398
- inset-inline: calc(var(--spacing) * 0);
2399
- }
2400
- }
2401
- .max-md\:bottom-0 {
2402
- @media (width < 48rem) {
2403
- bottom: calc(var(--spacing) * 0);
2404
- }
2405
- }
2406
2371
  .max-md\:flex {
2407
2372
  @media (width < 48rem) {
2408
2373
  display: flex;
@@ -2424,11 +2389,6 @@
2424
2389
  border-width: 1px;
2425
2390
  }
2426
2391
  }
2427
- .max-md\:bg-fd-background {
2428
- @media (width < 48rem) {
2429
- background-color: var(--color-fd-background);
2430
- }
2431
- }
2432
2392
  .max-md\:bg-fd-secondary {
2433
2393
  @media (width < 48rem) {
2434
2394
  background-color: var(--color-fd-secondary);
@@ -2469,26 +2429,11 @@
2469
2429
  justify-content: flex-end;
2470
2430
  }
2471
2431
  }
2472
- .md\:sticky {
2473
- @media (width >= 48rem) {
2474
- position: sticky;
2475
- }
2476
- }
2477
2432
  .md\:top-\[calc\(50\%-250px\)\] {
2478
2433
  @media (width >= 48rem) {
2479
2434
  top: calc(50% - 250px);
2480
2435
  }
2481
2436
  }
2482
- .md\:mx-auto {
2483
- @media (width >= 48rem) {
2484
- margin-inline: auto;
2485
- }
2486
- }
2487
- .md\:mt-1 {
2488
- @media (width >= 48rem) {
2489
- margin-top: calc(var(--spacing) * 1);
2490
- }
2491
- }
2492
2437
  .md\:mb-auto {
2493
2438
  @media (width >= 48rem) {
2494
2439
  margin-bottom: auto;
@@ -2505,16 +2450,6 @@
2505
2450
  height: calc(var(--spacing) * 5);
2506
2451
  }
2507
2452
  }
2508
- .md\:h-\[calc\(100dvh-56px\)\] {
2509
- @media (width >= 48rem) {
2510
- height: calc(100dvh - 56px);
2511
- }
2512
- }
2513
- .md\:w-\[300px\] {
2514
- @media (width >= 48rem) {
2515
- width: 300px;
2516
- }
2517
- }
2518
2453
  .md\:grid-cols-2 {
2519
2454
  @media (width >= 48rem) {
2520
2455
  grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -2900,6 +2835,10 @@
2900
2835
  inherits: false;
2901
2836
  initial-value: 0;
2902
2837
  }
2838
+ @property --tw-leading {
2839
+ syntax: "*";
2840
+ inherits: false;
2841
+ }
2903
2842
  @property --tw-font-weight {
2904
2843
  syntax: "*";
2905
2844
  inherits: false;
@@ -3102,42 +3041,6 @@
3102
3041
  transform: translateX(var(--fd-sidebar-drawer-offset));
3103
3042
  }
3104
3043
  }
3105
- @keyframes fd-collapsible-down {
3106
- from {
3107
- height: 0;
3108
- opacity: 0;
3109
- }
3110
- to {
3111
- height: var(--radix-collapsible-content-height);
3112
- }
3113
- }
3114
- @keyframes fd-collapsible-up {
3115
- from {
3116
- height: var(--radix-collapsible-content-height);
3117
- }
3118
- to {
3119
- height: 0;
3120
- opacity: 0;
3121
- }
3122
- }
3123
- @keyframes fd-accordion-down {
3124
- from {
3125
- height: 0;
3126
- opacity: 0.5;
3127
- }
3128
- to {
3129
- height: var(--radix-accordion-content-height);
3130
- }
3131
- }
3132
- @keyframes fd-accordion-up {
3133
- from {
3134
- height: var(--radix-accordion-content-height);
3135
- }
3136
- to {
3137
- height: 0;
3138
- opacity: 0.5;
3139
- }
3140
- }
3141
3044
  @keyframes fd-dialog-in {
3142
3045
  from {
3143
3046
  transform: scale(1.06);
@@ -3224,6 +3127,42 @@
3224
3127
  transform: translateX(-200px);
3225
3128
  }
3226
3129
  }
3130
+ @keyframes fd-collapsible-down {
3131
+ from {
3132
+ height: 0;
3133
+ opacity: 0;
3134
+ }
3135
+ to {
3136
+ height: var(--radix-collapsible-content-height);
3137
+ }
3138
+ }
3139
+ @keyframes fd-collapsible-up {
3140
+ from {
3141
+ height: var(--radix-collapsible-content-height);
3142
+ }
3143
+ to {
3144
+ height: 0;
3145
+ opacity: 0;
3146
+ }
3147
+ }
3148
+ @keyframes fd-accordion-down {
3149
+ from {
3150
+ height: 0;
3151
+ opacity: 0.5;
3152
+ }
3153
+ to {
3154
+ height: var(--radix-accordion-content-height);
3155
+ }
3156
+ }
3157
+ @keyframes fd-accordion-up {
3158
+ from {
3159
+ height: var(--radix-accordion-content-height);
3160
+ }
3161
+ to {
3162
+ height: 0;
3163
+ opacity: 0.5;
3164
+ }
3165
+ }
3227
3166
  @keyframes fd-nav-menu-in {
3228
3167
  from {
3229
3168
  opacity: 0;
@@ -3257,6 +3196,7 @@
3257
3196
  --tw-skew-x: initial;
3258
3197
  --tw-skew-y: initial;
3259
3198
  --tw-divide-y-reverse: 0;
3199
+ --tw-leading: initial;
3260
3200
  --tw-font-weight: initial;
3261
3201
  --tw-shadow: 0 0 #0000;
3262
3202
  --tw-shadow-color: initial;
@@ -1,3 +1,2 @@
1
- import { type MouseEventHandler } from 'react';
2
- export declare function useCopyButton(onCopy: () => void | Promise<void>): [checked: boolean, onClick: MouseEventHandler];
1
+ export * from '@fumadocs/ui/hooks/use-copy-button';
3
2
  //# sourceMappingURL=use-copy-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-copy-button.d.ts","sourceRoot":"","sources":["../../src/utils/use-copy-button.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAKvB,MAAM,OAAO,CAAC;AAEf,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACjC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CA2BhD"}
1
+ {"version":3,"file":"use-copy-button.d.ts","sourceRoot":"","sources":["../../src/utils/use-copy-button.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
@@ -1,27 +1 @@
1
- 'use client';
2
- import { useCallback, useEffect, useRef, useState, } from 'react';
3
- export function useCopyButton(onCopy) {
4
- const [checked, setChecked] = useState(false);
5
- const callbackRef = useRef(onCopy);
6
- const timeoutRef = useRef(null);
7
- callbackRef.current = onCopy;
8
- const onClick = useCallback(() => {
9
- if (timeoutRef.current)
10
- window.clearTimeout(timeoutRef.current);
11
- const res = Promise.resolve(callbackRef.current());
12
- void res.then(() => {
13
- setChecked(true);
14
- timeoutRef.current = window.setTimeout(() => {
15
- setChecked(false);
16
- }, 1500);
17
- });
18
- }, []);
19
- // Avoid updates after being unmounted
20
- useEffect(() => {
21
- return () => {
22
- if (timeoutRef.current)
23
- window.clearTimeout(timeoutRef.current);
24
- };
25
- }, []);
26
- return [checked, onClick];
27
- }
1
+ export * from '@fumadocs/ui/hooks/use-copy-button';
@@ -1,6 +1,2 @@
1
- import type * as PageTree from 'fumadocs-core/page-tree';
2
- /**
3
- * @returns a list of page tree items (linear), that you can obtain footer items
4
- */
5
- export declare function useFooterItems(): PageTree.Item[];
1
+ export * from '@fumadocs/ui/hooks/use-footer-items';
6
2
  //# sourceMappingURL=use-footer-items.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-footer-items.d.ts","sourceRoot":"","sources":["../../src/utils/use-footer-items.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAIzD;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAAC,IAAI,EAAE,CAkBhD"}
1
+ {"version":3,"file":"use-footer-items.d.ts","sourceRoot":"","sources":["../../src/utils/use-footer-items.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
@@ -1,27 +1 @@
1
- import { useTreeContext } from '../contexts/tree.js';
2
- const footerCache = new Map();
3
- /**
4
- * @returns a list of page tree items (linear), that you can obtain footer items
5
- */
6
- export function useFooterItems() {
7
- const { root } = useTreeContext();
8
- const cached = footerCache.get(root.$id);
9
- if (cached)
10
- return cached;
11
- const list = [];
12
- function onNode(node) {
13
- if (node.type === 'folder') {
14
- if (node.index)
15
- onNode(node.index);
16
- for (const child of node.children)
17
- onNode(child);
18
- }
19
- else if (node.type === 'page' && !node.external) {
20
- list.push(node);
21
- }
22
- }
23
- for (const child of root.children)
24
- onNode(child);
25
- footerCache.set(root.$id, list);
26
- return list;
27
- }
1
+ export * from '@fumadocs/ui/hooks/use-footer-items';
@@ -1,4 +1,2 @@
1
- export declare function useIsScrollTop({ enabled }: {
2
- enabled?: boolean;
3
- }): boolean | undefined;
1
+ export * from '@fumadocs/ui/hooks/use-is-scroll-top';
4
2
  //# sourceMappingURL=use-is-scroll-top.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-is-scroll-top.d.ts","sourceRoot":"","sources":["../../src/utils/use-is-scroll-top.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,EAAE,OAAc,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,uBAkBvE"}
1
+ {"version":3,"file":"use-is-scroll-top.d.ts","sourceRoot":"","sources":["../../src/utils/use-is-scroll-top.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC"}
@@ -1,17 +1 @@
1
- import { useEffect, useState } from 'react';
2
- export function useIsScrollTop({ enabled = true }) {
3
- const [isTop, setIsTop] = useState();
4
- useEffect(() => {
5
- if (!enabled)
6
- return;
7
- const listener = () => {
8
- setIsTop(window.scrollY < 10);
9
- };
10
- listener();
11
- window.addEventListener('scroll', listener);
12
- return () => {
13
- window.removeEventListener('scroll', listener);
14
- };
15
- }, [enabled]);
16
- return isTop;
17
- }
1
+ export * from '@fumadocs/ui/hooks/use-is-scroll-top';
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "fumadocs-ui",
3
- "version": "16.2.5",
4
- "description": "The React.js documentation framework",
3
+ "version": "16.3.1",
4
+ "description": "The Radix UI version of Fumadocs UI",
5
5
  "keywords": [
6
- "NextJs",
6
+ "Fumadocs",
7
7
  "Docs"
8
8
  ],
9
9
  "homepage": "https://fumadocs.dev",
@@ -15,6 +15,10 @@
15
15
  "./style.css": "./dist/style.css",
16
16
  "./css/*": "./css/*",
17
17
  "./image-zoom.css": "./dist/image-zoom.css",
18
+ "./components/tabs.unstyled": {
19
+ "import": "./dist/components/ui/tabs.js",
20
+ "types": "./dist/components/ui/tabs.d.ts"
21
+ },
18
22
  "./components/*": {
19
23
  "import": "./dist/components/*.js",
20
24
  "types": "./dist/components/*.d.ts",
@@ -73,10 +77,6 @@
73
77
  "import": "./dist/og.js",
74
78
  "types": "./dist/og.d.ts"
75
79
  },
76
- "./theme/*": {
77
- "import": "./dist/theme/*.js",
78
- "types": "./dist/theme/*.d.ts"
79
- },
80
80
  "./utils/get-sidebar-tabs": {
81
81
  "import": "./dist/components/sidebar/tabs/index.js",
82
82
  "types": "./dist/components/sidebar/tabs/index.d.ts"
@@ -84,10 +84,6 @@
84
84
  "./utils/*": {
85
85
  "import": "./dist/utils/*.js",
86
86
  "types": "./dist/utils/*.d.ts"
87
- },
88
- "./internal/icons": {
89
- "import": "./dist/icons.js",
90
- "types": "./dist/icons.d.ts"
91
87
  }
92
88
  },
93
89
  "files": [
@@ -106,40 +102,31 @@
106
102
  "@radix-ui/react-slot": "^1.2.4",
107
103
  "@radix-ui/react-tabs": "^1.1.13",
108
104
  "class-variance-authority": "^0.7.1",
109
- "lodash.merge": "^4.6.2",
110
105
  "next-themes": "^0.4.6",
111
- "postcss-selector-parser": "^7.1.1",
112
106
  "react-medium-image-zoom": "^5.4.0",
113
107
  "scroll-into-view-if-needed": "^3.1.0",
114
- "tailwind-merge": "^3.4.0",
115
- "fumadocs-core": "16.2.5"
108
+ "@fumadocs/ui": "16.3.1",
109
+ "fumadocs-core": "16.3.1"
116
110
  },
117
111
  "devDependencies": {
118
- "@next/eslint-plugin-next": "16.0.10",
119
112
  "@tailwindcss/cli": "^4.1.18",
120
- "@types/lodash.merge": "^4.6.9",
121
113
  "@types/node": "^24.10.2",
122
114
  "@types/react": "^19.2.7",
123
115
  "@types/react-dom": "^19.2.3",
124
- "next": "16.0.10",
125
116
  "tailwindcss": "^4.1.18",
126
117
  "tsc-alias": "^1.8.16",
127
118
  "@fumadocs/cli": "1.1.0",
128
119
  "eslint-config-custom": "0.0.0",
129
- "fumadocs-core": "16.2.5",
120
+ "fumadocs-core": "16.3.1",
130
121
  "tsconfig": "0.0.0"
131
122
  },
132
123
  "peerDependencies": {
133
124
  "@types/react": "*",
134
- "next": "16.x.x",
135
125
  "react": "^19.2.0",
136
126
  "react-dom": "^19.2.0",
137
127
  "tailwindcss": "^4.0.0"
138
128
  },
139
129
  "peerDependenciesMeta": {
140
- "next": {
141
- "optional": true
142
- },
143
130
  "@types/react": {
144
131
  "optional": true
145
132
  },
@@ -1,51 +0,0 @@
1
- @theme {
2
- --color-fd-background: hsl(0, 0%, 96%);
3
- --color-fd-foreground: hsl(0, 0%, 3.9%);
4
- --color-fd-muted: hsl(0, 0%, 96.1%);
5
- --color-fd-muted-foreground: hsl(0, 0%, 45.1%);
6
- --color-fd-popover: hsl(0, 0%, 98%);
7
- --color-fd-popover-foreground: hsl(0, 0%, 15.1%);
8
- --color-fd-card: hsl(0, 0%, 94.7%);
9
- --color-fd-card-foreground: hsl(0, 0%, 3.9%);
10
- --color-fd-border: hsla(0, 0%, 80%, 50%);
11
- --color-fd-primary: hsl(0, 0%, 9%);
12
- --color-fd-primary-foreground: hsl(0, 0%, 98%);
13
- --color-fd-secondary: hsl(0, 0%, 93.1%);
14
- --color-fd-secondary-foreground: hsl(0, 0%, 9%);
15
- --color-fd-accent: hsla(0, 0%, 82%, 50%);
16
- --color-fd-accent-foreground: hsl(0, 0%, 9%);
17
- --color-fd-ring: hsl(0, 0%, 63.9%);
18
- --color-fd-overlay: hsla(0, 0%, 0%, 0.2);
19
- }
20
-
21
- .dark {
22
- --color-fd-background: hsl(0, 0%, 7.04%);
23
- --color-fd-foreground: hsl(0, 0%, 92%);
24
- --color-fd-muted: hsl(0, 0%, 12.9%);
25
- --color-fd-muted-foreground: hsla(0, 0%, 70%, 0.8);
26
- --color-fd-popover: hsl(0, 0%, 11.6%);
27
- --color-fd-popover-foreground: hsl(0, 0%, 86.9%);
28
- --color-fd-card: hsl(0, 0%, 9.8%);
29
- --color-fd-card-foreground: hsl(0, 0%, 98%);
30
- --color-fd-border: hsla(0, 0%, 40%, 20%);
31
- --color-fd-primary: hsl(0, 0%, 98%);
32
- --color-fd-primary-foreground: hsl(0, 0%, 9%);
33
- --color-fd-secondary: hsl(0, 0%, 12.9%);
34
- --color-fd-secondary-foreground: hsl(0, 0%, 92%);
35
- --color-fd-accent: hsla(0, 0%, 40.9%, 30%);
36
- --color-fd-accent-foreground: hsl(0, 0%, 90%);
37
- --color-fd-ring: hsl(0, 0%, 54.9%);
38
- --color-fd-overlay: hsla(0, 0%, 0%, 0.2);
39
- }
40
-
41
- @theme static {
42
- --color-fd-info: oklch(62.3% 0.214 259.815);
43
- --color-fd-warning: oklch(76.9% 0.188 70.08);
44
- --color-fd-error: oklch(63.7% 0.237 25.331);
45
- --color-fd-success: oklch(72.3% 0.219 149.579);
46
- --color-fd-idea: oklch(70.5% 0.209 60.849);
47
- --color-fd-diff-remove: rgba(200, 10, 100, 0.12);
48
- --color-fd-diff-remove-symbol: rgb(230, 10, 100);
49
- --color-fd-diff-add: rgba(14, 180, 100, 0.1);
50
- --color-fd-diff-add-symbol: rgb(10, 200, 100);
51
- }