fumadocs-ui 13.4.10 → 14.0.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 (92) hide show
  1. package/dist/{chunk-774JT2B6.js → chunk-5KVEK5A7.js} +11 -8
  2. package/dist/chunk-5QPVK7QM.js +542 -0
  3. package/dist/chunk-BN7HGCQ4.js +212 -0
  4. package/dist/chunk-CDPVENXR.js +8 -0
  5. package/dist/{chunk-KWZZNVSY.js → chunk-CPGKWLLV.js} +7 -3
  6. package/dist/chunk-DN6Z5VW6.js +61 -0
  7. package/dist/chunk-GHOAONNQ.js +48 -0
  8. package/dist/{chunk-ERUVE5R6.js → chunk-IHIFNFRB.js} +4 -2
  9. package/dist/{chunk-CP67AHDD.js → chunk-IVBHRX3O.js} +1 -1
  10. package/dist/{chunk-NSEJBI4V.js → chunk-KZTWSBYY.js} +28 -16
  11. package/dist/chunk-MCX7E6ZW.js +57 -0
  12. package/dist/chunk-PZTQPB4U.js +125 -0
  13. package/dist/{chunk-EDNTYBXS.js → chunk-QKOA6KEZ.js} +2 -17
  14. package/dist/{chunk-YIOV4KEY.js → chunk-TYZZJ335.js} +26 -16
  15. package/dist/{chunk-HOIRMHZT.js → chunk-UQIRU7MP.js} +8 -2
  16. package/dist/chunk-V6RONFCQ.js +69 -0
  17. package/dist/chunk-WRBUXI2A.js +82 -0
  18. package/dist/chunk-YL3MZH7N.js +66 -0
  19. package/dist/components/accordion.js +7 -3
  20. package/dist/components/api.d.ts +2 -5
  21. package/dist/components/api.js +2 -4
  22. package/dist/components/banner.js +5 -6
  23. package/dist/components/callout.d.ts +1 -1
  24. package/dist/components/callout.js +2 -1
  25. package/dist/components/card.d.ts +6 -5
  26. package/dist/components/card.js +1 -1
  27. package/dist/components/codeblock.js +4 -3
  28. package/dist/components/dialog/search-algolia.d.ts +10 -4
  29. package/dist/components/dialog/search-algolia.js +25 -15
  30. package/dist/components/dialog/search-default.d.ts +10 -6
  31. package/dist/components/dialog/search-default.js +27 -5
  32. package/dist/components/dialog/search.d.ts +7 -7
  33. package/dist/components/dialog/search.js +4 -3
  34. package/dist/components/files.js +15 -11
  35. package/dist/components/heading.js +2 -1
  36. package/dist/components/image-zoom.js +8 -5
  37. package/dist/components/inline-toc.js +3 -1
  38. package/dist/components/layout/language-toggle.d.ts +4 -3
  39. package/dist/components/layout/language-toggle.js +8 -6
  40. package/dist/components/layout/root-toggle.d.ts +3 -3
  41. package/dist/components/layout/root-toggle.js +7 -73
  42. package/dist/components/tabs.js +30 -13
  43. package/dist/components/type-table.d.ts +7 -5
  44. package/dist/components/type-table.js +11 -11
  45. package/dist/dynamic-sidebar-QWGMOUMS.js +129 -0
  46. package/dist/{edit-on-github-YFVYCMB7.js → edit-on-github-PCTRDRD6.js} +10 -8
  47. package/dist/layouts/docs.client.d.ts +26 -0
  48. package/dist/layouts/docs.client.js +200 -0
  49. package/dist/layouts/docs.d.ts +29 -0
  50. package/dist/layouts/docs.js +187 -0
  51. package/dist/layouts/home.client.d.ts +11 -0
  52. package/dist/layouts/home.client.js +274 -0
  53. package/dist/layouts/home.d.ts +7 -0
  54. package/dist/layouts/home.js +55 -0
  55. package/dist/layouts/shared.d.ts +2 -0
  56. package/dist/layouts/shared.js +9 -0
  57. package/dist/mdx.client.js +4 -3
  58. package/dist/mdx.d.ts +0 -1
  59. package/dist/mdx.js +8 -10
  60. package/dist/og.d.ts +1 -7
  61. package/dist/og.js +5 -15
  62. package/dist/page.client.d.ts +2 -1
  63. package/dist/page.client.js +91 -63
  64. package/dist/page.d.ts +6 -5
  65. package/dist/page.js +63 -51
  66. package/dist/provider.d.ts +1 -2
  67. package/dist/provider.js +3 -4
  68. package/dist/shared-ElIzX-sQ.d.ts +152 -0
  69. package/dist/{sidebar-DwBSl7jC.d.ts → sidebar-HwpSmOKR.d.ts} +7 -9
  70. package/dist/style.css +1 -1
  71. package/dist/tailwind-plugin.js +86 -39
  72. package/dist/{toc-clerk-CAID2WGC.js → toc-clerk-SKE4LBT7.js} +40 -50
  73. package/dist/{tree-CrKzI9Nz.d.ts → tree-06ley65N.d.ts} +9 -3
  74. package/package.json +31 -68
  75. package/dist/chunk-KCZRDPB4.js +0 -308
  76. package/dist/chunk-LSTPTAZ5.js +0 -58
  77. package/dist/chunk-P4HLRHHV.js +0 -36
  78. package/dist/chunk-UOD2T27N.js +0 -27
  79. package/dist/chunk-WLTWFYQA.js +0 -44
  80. package/dist/docs-layout.client.d.ts +0 -18
  81. package/dist/docs-layout.client.js +0 -406
  82. package/dist/home-layout.client.d.ts +0 -9
  83. package/dist/home-layout.client.js +0 -88
  84. package/dist/home-layout.d.ts +0 -7
  85. package/dist/home-layout.js +0 -30
  86. package/dist/layout.d.ts +0 -19
  87. package/dist/layout.js +0 -127
  88. package/dist/layout.shared-DEQFTB9M.d.ts +0 -117
  89. package/dist/twoslash/popup.d.ts +0 -11
  90. package/dist/twoslash/popup.js +0 -97
  91. package/dist/twoslash.css +0 -1
  92. /package/dist/{image-zoom.css → components/image-zoom.css} +0 -0
package/dist/layout.js DELETED
@@ -1,127 +0,0 @@
1
- import {
2
- TreeContextProvider,
3
- SidebarCollapseTrigger,
4
- ThemeToggle,
5
- SubNav,
6
- LanguageToggle,
7
- LinksMenu,
8
- DynamicSidebar,
9
- Sidebar,
10
- } from "./docs-layout.client"
11
- import {
12
- getLinks
13
- } from "./chunk-HOIRMHZT.js";
14
- import {
15
- replaceOrDefault
16
- } from "./chunk-UOD2T27N.js";
17
- import {
18
- buttonVariants
19
- } from "./chunk-EDNTYBXS.js";
20
- import {
21
- twMerge
22
- } from "./chunk-TK3TM3MR.js";
23
- import "./chunk-MLKGABMK.js";
24
-
25
- // src/layout.tsx
26
- import Link from "next/link";
27
- import { MoreHorizontal } from "lucide-react";
28
- import { notFound } from "next/navigation";
29
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
30
- function DocsLayout({
31
- nav,
32
- githubUrl,
33
- sidebar: {
34
- enabled: sidebarEnabled = true,
35
- collapsible = true,
36
- component: sidebarReplace,
37
- ...sidebar
38
- } = {},
39
- containerProps = {},
40
- i18n = false,
41
- ...props
42
- }) {
43
- const links = getLinks(props.links ?? [], githubUrl);
44
- const Aside = collapsible ? DynamicSidebar : Sidebar;
45
- if (props.tree === void 0) notFound();
46
- const banner = [];
47
- const footer = [];
48
- if (nav?.title)
49
- banner.push(
50
- /* @__PURE__ */ jsx(
51
- Link,
52
- {
53
- href: nav.url ?? "/",
54
- className: "inline-flex items-center gap-2.5 py-1 font-medium",
55
- children: nav.title
56
- },
57
- "title"
58
- )
59
- );
60
- if (links.length > 0)
61
- banner.push(
62
- /* @__PURE__ */ jsx(
63
- LinksMenu,
64
- {
65
- items: links,
66
- className: twMerge(
67
- buttonVariants({
68
- size: "icon",
69
- color: "ghost",
70
- className: "ms-auto"
71
- })
72
- ),
73
- children: /* @__PURE__ */ jsx(MoreHorizontal, {})
74
- },
75
- "links"
76
- )
77
- );
78
- footer.push(/* @__PURE__ */ jsx(ThemeToggle, {}, "theme"));
79
- if (i18n) {
80
- footer.push(/* @__PURE__ */ jsx(LanguageToggle, {}, "i18n"));
81
- }
82
- if (collapsible) {
83
- footer.push(/* @__PURE__ */ jsx(SidebarCollapseTrigger, {}, "sidebar"));
84
- }
85
- return /* @__PURE__ */ jsxs(TreeContextProvider, { tree: props.tree, children: [
86
- replaceOrDefault(nav, /* @__PURE__ */ jsx(SubNav, { ...nav })),
87
- /* @__PURE__ */ jsxs(
88
- "main",
89
- {
90
- id: "nd-docs-layout",
91
- ...containerProps,
92
- className: twMerge("flex flex-1 flex-row", containerProps.className),
93
- children: [
94
- replaceOrDefault(
95
- { enabled: sidebarEnabled, component: sidebarReplace },
96
- /* @__PURE__ */ jsx(
97
- Aside,
98
- {
99
- ...sidebar,
100
- items: links,
101
- banner: banner.length > 0 || sidebar.banner ? /* @__PURE__ */ jsxs(Fragment, { children: [
102
- banner.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex flex-row items-center border-b pb-2 max-md:hidden", children: banner }) : null,
103
- sidebar.banner
104
- ] }) : null,
105
- bannerProps: {
106
- ...sidebar.bannerProps,
107
- className: twMerge(
108
- !sidebar.banner && "max-md:hidden",
109
- sidebar.bannerProps?.className
110
- )
111
- },
112
- footer: footer.length > 0 || sidebar.footer ? /* @__PURE__ */ jsxs(Fragment, { children: [
113
- sidebar.footer,
114
- footer
115
- ] }) : null
116
- }
117
- )
118
- ),
119
- props.children
120
- ]
121
- }
122
- )
123
- ] });
124
- }
125
- export {
126
- DocsLayout
127
- };
@@ -1,117 +0,0 @@
1
- import { ReactNode } from 'react';
2
-
3
- interface BaseItem {
4
- /**
5
- * Restrict where the item is displayed
6
- *
7
- * @defaultValue 'all'
8
- */
9
- on?: 'menu' | 'nav' | 'all';
10
- }
11
- interface BaseLinkItem extends BaseItem {
12
- url: string;
13
- /**
14
- * When the item is marked as active
15
- *
16
- * @defaultValue 'url'
17
- */
18
- active?: 'url' | 'nested-url' | 'none';
19
- external?: boolean;
20
- }
21
- type LinkItemType = (BaseLinkItem & {
22
- type?: 'main';
23
- icon?: ReactNode;
24
- text: ReactNode;
25
- }) | (BaseLinkItem & {
26
- type: 'icon';
27
- /**
28
- * `aria-label` of icon button
29
- */
30
- label?: string;
31
- icon: ReactNode;
32
- text: ReactNode;
33
- /**
34
- * @defaultValue true
35
- */
36
- secondary?: boolean;
37
- }) | (BaseLinkItem & {
38
- type: 'button';
39
- icon?: ReactNode;
40
- text: ReactNode;
41
- /**
42
- * @defaultValue false
43
- */
44
- secondary?: boolean;
45
- }) | (BaseItem & {
46
- type: 'menu';
47
- icon?: ReactNode;
48
- text: ReactNode;
49
- items: LinkItemType[];
50
- /**
51
- * @defaultValue false
52
- */
53
- secondary?: boolean;
54
- }) | (BaseItem & {
55
- type: 'custom';
56
- /**
57
- * @defaultValue false
58
- */
59
- secondary?: boolean;
60
- children: ReactNode;
61
- });
62
- interface LinksMenuProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
63
- items: LinkItemType[];
64
- footer?: React.ReactNode;
65
- }
66
- declare function LinksMenu({ items, footer, ...props }: LinksMenuProps): React.ReactElement;
67
-
68
- interface NavBoxProps {
69
- /**
70
- * Use transparent background
71
- *
72
- * @defaultValue none
73
- */
74
- transparentMode?: 'always' | 'top' | 'none';
75
- }
76
- interface TitleProps {
77
- title?: ReactNode;
78
- /**
79
- * Redirect url of title
80
- * @defaultValue '/'
81
- */
82
- url?: string;
83
- }
84
-
85
- interface NavOptions extends SharedNavProps {
86
- enabled: boolean;
87
- component: ReactNode;
88
- }
89
- interface SharedNavProps extends TitleProps, NavBoxProps {
90
- /**
91
- * Show/hide search toggle
92
- *
93
- * Note: Enable/disable search from root provider instead
94
- */
95
- enableSearch?: boolean;
96
- children?: ReactNode;
97
- }
98
- interface BaseLayoutProps {
99
- /**
100
- * Enable Language Switch
101
- *
102
- * @defaultValue false
103
- */
104
- i18n?: boolean;
105
- /**
106
- * GitHub url
107
- */
108
- githubUrl?: string;
109
- links?: LinkItemType[];
110
- /**
111
- * Replace or disable navbar
112
- */
113
- nav?: Partial<NavOptions>;
114
- children?: ReactNode;
115
- }
116
-
117
- export { type BaseLayoutProps as B, type LinkItemType as L, type SharedNavProps as S, LinksMenu as a };
@@ -1,11 +0,0 @@
1
- import * as _radix_ui_react_popover from '@radix-ui/react-popover';
2
- import * as react from 'react';
3
-
4
- declare function Popup({ delay, children, }: {
5
- delay?: number;
6
- children: react.ReactNode;
7
- }): JSX.Element;
8
- declare const PopupTrigger: react.ForwardRefExoticComponent<Omit<_radix_ui_react_popover.PopoverTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
9
- declare const PopupContent: react.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_popover.PopoverContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
10
-
11
- export { Popup, PopupContent, PopupTrigger };
@@ -1,97 +0,0 @@
1
- "use client";
2
- import {
3
- Popover,
4
- PopoverContent,
5
- PopoverTrigger
6
- } from "../chunk-CP67AHDD.js";
7
- import {
8
- twMerge
9
- } from "../chunk-TK3TM3MR.js";
10
- import "../chunk-MLKGABMK.js";
11
-
12
- // src/twoslash/popup.tsx
13
- import * as React from "react";
14
- import { jsx } from "react/jsx-runtime";
15
- var PopupContext = React.createContext(
16
- void 0
17
- );
18
- function Popup({
19
- delay = 300,
20
- children
21
- }) {
22
- const [open, setOpen] = React.useState(false);
23
- const openTimeoutRef = React.useRef();
24
- const closeTimeoutRef = React.useRef();
25
- const handleOpen = React.useCallback(
26
- (e) => {
27
- if (e.pointerType === "touch") return;
28
- if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);
29
- openTimeoutRef.current = window.setTimeout(() => {
30
- setOpen(true);
31
- }, delay);
32
- },
33
- [delay]
34
- );
35
- const handleClose = React.useCallback(
36
- (e) => {
37
- if (e.pointerType === "touch") return;
38
- if (openTimeoutRef.current) clearTimeout(openTimeoutRef.current);
39
- closeTimeoutRef.current = window.setTimeout(() => {
40
- setOpen(false);
41
- }, delay);
42
- },
43
- [delay]
44
- );
45
- return /* @__PURE__ */ jsx(Popover, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsx(
46
- PopupContext.Provider,
47
- {
48
- value: React.useMemo(
49
- () => ({
50
- open,
51
- setOpen,
52
- handleOpen,
53
- handleClose
54
- }),
55
- [handleClose, handleOpen, open]
56
- ),
57
- children
58
- }
59
- ) });
60
- }
61
- var PopupTrigger = React.forwardRef((props, ref) => {
62
- const ctx = React.useContext(PopupContext);
63
- if (!ctx) throw new Error("Missing Popup Context");
64
- return /* @__PURE__ */ jsx(
65
- PopoverTrigger,
66
- {
67
- ref,
68
- onPointerEnter: ctx.handleOpen,
69
- onPointerLeave: ctx.handleClose,
70
- ...props
71
- }
72
- );
73
- });
74
- PopupTrigger.displayName = "PopupTrigger";
75
- var PopupContent = React.forwardRef(({ className, ...props }, ref) => {
76
- const ctx = React.useContext(PopupContext);
77
- if (!ctx) throw new Error("Missing Popup Context");
78
- return /* @__PURE__ */ jsx(
79
- PopoverContent,
80
- {
81
- ref,
82
- onPointerEnter: ctx.handleOpen,
83
- onPointerLeave: ctx.handleClose,
84
- onCloseAutoFocus: (e) => {
85
- e.preventDefault();
86
- },
87
- className: twMerge("max-w-80", className),
88
- ...props
89
- }
90
- );
91
- });
92
- PopupContent.displayName = "PopupContent";
93
- export {
94
- Popup,
95
- PopupContent,
96
- PopupTrigger
97
- };
package/dist/twoslash.css DELETED
@@ -1 +0,0 @@
1
- :root{--twoslash-error-color:#d45656;--twoslash-error-bg:rgba(212,86,86,.125);--twoslash-tag-color:#3772cf;--twoslash-tag-bg:rgba(55,114,207,.125);--twoslash-tag-warn-color:#c37d0d;--twoslash-tag-warn-bg:rgba(195,125,13,.125);--twoslash-tag-annotate-color:#1ba673;--twoslash-tag-annotate-bg:rgba(27,166,115,.125)}.twoslash-query-presisted .twoslash-popup-container,.twoslash-completion-list{-webkit-user-select:none;-ms-user-select:none;user-select:none;white-space:normal;z-index:8;--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity));border-width:1px;border-radius:6px;flex-direction:column;width:20rem;padding:8px;display:flex;position:absolute;top:0;left:0;transform:translateY(16px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.twoslash-query-presisted .twoslash-popup-container:hover,.twoslash-completion-list:hover{-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.twoslash-popup-arrow{pointer-events:none;--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity));border-top-width:1px;border-right-width:1px;width:6px;height:6px;position:absolute;top:-4px;left:1em;transform:rotate(-45deg)}.twoslash-popup-docs-tag{flex-direction:column;gap:.5em;display:flex}.twoslash-popup-docs-tag-name{font-weight:600}.twoslash-popup-code{font-size:14px;display:block!important}.twoslash-popup-code .line{padding-left:0!important}.twoslash-popup-docs,.twoslash-popup-docs-tags{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity));margin-top:8px!important;font-size:14px!important;line-height:20px!important}.twoslash:hover .twoslash-hover{border-color:currentColor}.twoslash .twoslash-hover{border-color:transparent;border-bottom-style:dotted;border-bottom-width:1px;transition:border .3s;position:relative}.twoslash .twoslash-error-line{background-color:var(--twoslash-error-bg);border-left:3px solid var(--twoslash-error-color);color:var(--twoslash-error-color);margin:.2em 0;padding:6px 12px;position:relative}.twoslash .twoslash-error{-webkit-text-decoration:wavy underline var(--twoslash-error-color);text-decoration:wavy underline var(--twoslash-error-color);padding-bottom:2px}.twoslash .twoslash-completion-cursor{position:relative}.twoslash-completion-list:before{content:" ";--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity));width:1px;height:1em;position:absolute;top:-1.2em;left:-1px}.twoslash-completion-list li{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.5rem;font-size:13px;display:inline-flex;overflow:hidden}.twoslash-completion-list li span.twoslash-completions-unmatched{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.twoslash-completion-list .deprecated{opacity:.5;text-decoration:line-through}.twoslash-completion-list .twoslash-completions-icon{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity));flex:none;width:1em}.twoslash .twoslash-tag-line{background-color:var(--twoslash-tag-bg);border-left:3px solid var(--twoslash-tag-color);color:var(--twoslash-tag-color);align-items:center;gap:.3em;margin:.2em 0;padding:6px 10px;display:flex;position:relative}.twoslash .twoslash-tag-line .twoslash-tag-icon{color:inherit;width:1.1em}.twoslash .twoslash-tag-line.twoslash-tag-error-line{background-color:var(--twoslash-error-bg);border-left:3px solid var(--twoslash-error-color);color:var(--twoslash-error-color)}.twoslash .twoslash-tag-line.twoslash-tag-warn-line{background-color:var(--twoslash-tag-warn-bg);border-left:3px solid var(--twoslash-tag-warn-color);color:var(--twoslash-tag-warn-color)}.twoslash .twoslash-tag-line.twoslash-tag-annotate-line{background-color:var(--twoslash-tag-annotate-bg);border-left:3px solid var(--twoslash-tag-annotate-color);color:var(--twoslash-tag-annotate-color)}@media (prefers-reduced-motion:reduce){.twoslash *{transition:none!important}}