fumadocs-ui 16.14.0 → 16.14.2

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.
@@ -1 +1 @@
1
- @source inline("!footer ---spacing --fd-left-width --fd-main-width --fd-right-width --row --width -me-1.5 -mt-1.5 -mx-1 -translate-x-[280px] @default @sm:max-w-[200px] [--fd-left-width:0px] [--fd-main-width:900px] [--fd-right-width:0px] [--row:calc(3*var(--spacing))] [--row:calc(6*var(--spacing))] [grid-area:left-margin/left-margin/right/right] [grid-area:left] [grid-area:main] [grid-area:right] [mask-image:linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent))] [mask-image:radial-gradient(circle_at_center_right,white,white_200px,transparent_500px)] after aiChat article autoScroll available backdrop-blur-sm base baseVariants before bg-fd-muted-foreground/50 bg-fd-popover/80 chat clientX collapse contentProps data-[active=false]:hover:text-fd-accent-foreground data-[state=closed]:animate-fd-sidebar-out data-[state=open]:animate-fd-sidebar-in data-fd-full defaultSlots defaultTabs desktop edit exitTimerRef fd-glass-layout first:mt-0 flex-row-reverse font-semibold footer footerList fumadocs-core/breadcrumb getBreadcrumbItemsFromPath grid-cols-1 gridTemplate gridTemplateRows group-data-[active=true]:bg-fd-primary h-0 h-6 h-8 h-[calc(100dvh---spacing(4))] handles hover hover:decoration-dashed hover:decoration-fd-muted-foreground hover:opacity-80 hover:underline hover:underline-offset-4 inAnimation including information innerWidth inset-e-0 isLayoutTabActive itemTriggerVariants items-start justify-end layout:[--fd-main-width:1200px] leaves left left-margin lg linkItems longer max-md:bg-linear-to-t max-md:bottom-0 max-md:from-fd-background max-md:h-16 max-md:hidden max-md:mt-auto max-md:pb-4 max-md:ps-[calc(--spacing(1.5)-1px)] max-md:w-4 max-w-[calc(100vw-3rem)] max-xl:-translate-y-1/2 max-xl:bg-fd-popover max-xl:border max-xl:end-1 max-xl:fixed max-xl:grid-cols-[calc(240px---spacing(6))] max-xl:mask-none max-xl:max-h-[calc(100dvh---spacing(32))] max-xl:overflow-clip max-xl:p-3 max-xl:ps-[calc(--spacing(2.5)-1px)] max-xl:rounded-xl max-xl:shadow-md max-xl:text-fd-popover-foreground max-xl:top-1/2 max-xl:w-6 max-xl:w-[240px] mb-8 md:bg-linear-to-b md:from-fd-background md:h-12 md:layout:[--fd-left-width:0px] md:layout:[--fd-left-width:280px] md:layout:[--fd-right-width:12px] md:pb-8 md:pt-16 md:pt-2 md:px-2 md:py-1.5 md:top-0 min-h-dvh mobile mt-2 mt-2.5 mt-4 mx-2 my-2 nd-toc nd-toc-title no onPointerDown opacity-100 overflow-x-clip overflow-y-hidden p-0 p-6 pagination pb-16 pb-4 pe-3 pen pointer pointer-events-none prose-sm provided ps-2.5 ps-3 pt-2 pt-4 px-3.5 reuse right right-margin rightIcon setDate setInAnimation setMobileOpen shadow-fd-background shouldOpen size-10 size-12 size-3.5! size-4! start text-[1.75em] text-end text-fd-foreground text-fd-primary/80 timeout timezone top-2 transition-[background-color,width,height] transition-[grid-template-rows] transition-[opacity,height] transition-[width,padding] transitionTimerRef typography under unlisted updated useBaseSlots useFooterItems useGlassLayout w-(--width) w-[360px] w-[calc(280px---spacing(2))] we well xl:[@media(hover:none)]:[--row:calc(6*var(--spacing))] xl:[@media(hover:none)]:h-6 xl:[@media(hover:none)]:h-px xl:[@media(hover:none)]:opacity-100 xl:[@media(hover:none)]:pointer-events-auto xl:[@media(hover:none)]:w-(--width) xl:flex-row-reverse xl:h-[calc(100dvh---spacing(10))] xl:hidden xl:items-center xl:items-end xl:layout:[--fd-right-width:240px] xl:pe-4 xl:sticky xl:text-end xl:top-10 z-10 z-20 z-30");
1
+ @source inline("!footer ---spacing --fd-left-width --fd-main-width --fd-right-width --row --width -me-1.5 -mt-1.5 -mx-1 -translate-x-[280px] @default @sm:max-w-[200px] [--fd-left-width:0px] [--fd-main-width:900px] [--fd-right-width:0px] [--row:calc(3*var(--spacing))] [--row:calc(6*var(--spacing))] [grid-area:left-margin/left-margin/right/right] [grid-area:left] [grid-area:main] [grid-area:right] [mask-image:linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent))] [mask-image:radial-gradient(circle_at_center_right,white,white_200px,transparent_500px)] after aiChat article autoScroll available backdrop-blur-sm base baseVariants before bg-fd-muted-foreground/50 bg-fd-popover/80 chat clientX collapse contentProps data-[active=false]:hover:text-fd-accent-foreground data-[state=closed]:animate-fd-sidebar-out data-[state=open]:animate-fd-sidebar-in data-fd-full defaultSlots defaultTabs desktop edit exitTimerRef fd-glass-layout first:mt-0 flex-row-reverse font-semibold footer footerList fumadocs-core/breadcrumb getBreadcrumbItemsFromPath grid-cols-1 gridTemplate gridTemplateRows group-data-[active=true]:bg-fd-primary h-0 h-6 h-8 h-[calc(100dvh---spacing(4))] handles hover hover:decoration-dashed hover:decoration-fd-muted-foreground hover:opacity-80 hover:underline hover:underline-offset-4 inAnimation including information innerWidth inset-e-0 isLayoutTabActive itemTriggerVariants items-start justify-end layout:[--fd-main-width:1200px] leaves left left-margin leftSpace lg linkItems longer max-md:bg-linear-to-t max-md:bottom-0 max-md:from-fd-background max-md:h-16 max-md:hidden max-md:mt-auto max-md:pb-4 max-md:ps-[calc(--spacing(1.5)-1px)] max-md:w-4 max-w-[calc(100vw-3rem)] max-xl:-translate-y-1/2 max-xl:bg-fd-popover max-xl:border max-xl:end-1 max-xl:fixed max-xl:grid-cols-[calc(240px---spacing(6))] max-xl:mask-none max-xl:max-h-[calc(100dvh---spacing(32))] max-xl:overflow-clip max-xl:p-3 max-xl:ps-[calc(--spacing(2.5)-1px)] max-xl:rounded-xl max-xl:shadow-md max-xl:text-fd-popover-foreground max-xl:top-1/2 max-xl:w-6 max-xl:w-[240px] mb-8 md:bg-linear-to-b md:from-fd-background md:h-12 md:layout:[--fd-left-width:0px] md:layout:[--fd-left-width:280px] md:layout:[--fd-right-width:12px] md:pb-8 md:pt-16 md:pt-2 md:px-2 md:py-1.5 md:top-0 min-h-dvh mobile mt-2 mt-2.5 mt-4 mx-2 my-2 nd-toc nd-toc-title no onPointerDown opacity-100 overflow-x-clip overflow-y-hidden p-0 p-6 pagination pb-16 pb-4 pe-3 pe-3.5 pen pointer pointer-events-none prose-sm provided ps-2.5 ps-3 ps-4.5 pt-2 pt-4 reuse right right-margin rightIcon setDate setInAnimation setMobileOpen shadow-fd-background shouldOpen size-10 size-12 size-3.5! size-4! start text-[1.75em] text-end text-fd-foreground text-fd-primary/80 timeout timezone top-2 transition-[background-color,width,height] transition-[grid-template-rows] transition-[opacity,height] transition-[width,padding] transitionTimerRef typography under unlisted updated useBaseSlots useFooterItems useGlassLayout w-(--width) w-[360px] w-[calc(280px---spacing(2))] we well xl:[@media(hover:none)]:[--row:calc(6*var(--spacing))] xl:[@media(hover:none)]:h-6 xl:[@media(hover:none)]:h-px xl:[@media(hover:none)]:opacity-100 xl:[@media(hover:none)]:pointer-events-auto xl:[@media(hover:none)]:w-(--width) xl:flex-row-reverse xl:h-[calc(100dvh---spacing(10))] xl:hidden xl:items-center xl:items-end xl:layout:[--fd-right-width:240px] xl:pe-4 xl:sticky xl:text-end xl:top-10 z-10 z-20 z-30");
@@ -10,7 +10,8 @@ function Cards(props) {
10
10
  });
11
11
  }
12
12
  function Card({ icon, title, description, ...props }) {
13
- return /* @__PURE__ */ jsxs(props.href ? Link : "div", {
13
+ const E = props.href ? Link : "div";
14
+ return /* @__PURE__ */ jsxs(E, {
14
15
  ...props,
15
16
  "data-card": true,
16
17
  className: cn("block rounded-xl border bg-fd-card p-4 text-fd-card-foreground transition-colors @max-lg:col-span-full", props.href && "hover:bg-fd-accent/80", props.className),
@@ -152,9 +152,10 @@ function SearchDialogInput(props) {
152
152
  }
153
153
  function SearchDialogClose({ children = "ESC", className, ...props }) {
154
154
  const { onOpenChange } = useSearch();
155
+ const t = useTranslations({ note: "search dialog" });
155
156
  return /* @__PURE__ */ jsx("button", {
156
157
  type: "button",
157
- "aria-label": useTranslations({ note: "search dialog" })("Close Search", { note: "aria-label" }),
158
+ "aria-label": t("Close Search", { note: "aria-label" }),
158
159
  onClick: () => onOpenChange(false),
159
160
  className: cn(buttonVariants({
160
161
  color: "outline",
@@ -23,7 +23,7 @@ function DynamicCodeBlock({ lang, code, codeblock, options, wrapInSuspense = tru
23
23
  ...options,
24
24
  components: {
25
25
  pre: DefaultPre,
26
- ...options.components
26
+ ...options?.components
27
27
  }
28
28
  };
29
29
  let node = useShikiDynamic(highlighter, code, shikiOptions, [
@@ -245,9 +245,10 @@ function SidebarTrigger({ children, ...props }) {
245
245
  }
246
246
  function SidebarCollapseTrigger(props) {
247
247
  const { collapsed, setCollapsed } = useSidebar();
248
+ const t = useTranslations({ note: "sidebar" });
248
249
  return /* @__PURE__ */ jsx("button", {
249
250
  type: "button",
250
- "aria-label": useTranslations({ note: "sidebar" })("Collapse Sidebar", { note: "aria-label" }),
251
+ "aria-label": t("Collapse Sidebar", { note: "aria-label" }),
251
252
  "data-collapsed": collapsed,
252
253
  onClick: () => {
253
254
  setCollapsed((prev) => !prev);
@@ -8,7 +8,8 @@ function createLinkItemRenderer({ SidebarFolder, SidebarFolderContent, SidebarFo
8
8
  * Render sidebar items from page tree
9
9
  */
10
10
  return function SidebarLinkItem({ item, ...props }) {
11
- const active = isLinkItemActive(item, usePathname());
11
+ const pathname = usePathname();
12
+ const active = isLinkItemActive(item, pathname);
12
13
  if (item.type === "custom") return /* @__PURE__ */ jsx("div", {
13
14
  ...props,
14
15
  children: item.children
@@ -104,9 +104,10 @@ function TOCItems({ ref, className, children, ...props }) {
104
104
  });
105
105
  }
106
106
  function TOCEmpty() {
107
+ const t = useTranslations({ note: "table of contents" });
107
108
  return /* @__PURE__ */ jsx("div", {
108
109
  className: "rounded-lg border bg-fd-card p-3 text-xs text-fd-muted-foreground",
109
- children: useTranslations({ note: "table of contents" })("No Headings")
110
+ children: t("No Headings")
110
111
  });
111
112
  }
112
113
  function ThumbTrack({ computed }) {
@@ -119,9 +119,10 @@ function TOCItems({ ref, className, thumbBox = true, children, ...props }) {
119
119
  });
120
120
  }
121
121
  function TOCEmpty() {
122
+ const t = useTranslations({ note: "table of contents" });
122
123
  return /* @__PURE__ */ jsx("div", {
123
124
  className: "rounded-lg border bg-fd-card p-3 text-xs text-fd-muted-foreground",
124
- children: useTranslations({ note: "table of contents" })("No Headings")
125
+ children: t("No Headings")
125
126
  });
126
127
  }
127
128
  function ThumbTrack({ computed, thumbBox }) {
@@ -4,14 +4,15 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { useMemo } from "react";
5
5
  //#region src/layouts/docs/index.tsx
6
6
  function DocsLayout({ tree, sidebar: { tabs: _tabs, tabMode: _tabMode, ...sidebarProps } = {}, tabs: layoutTabs = _tabs, tabMode = _tabMode, children, ...props }) {
7
+ const tabs = useMemo(() => {
8
+ if (Array.isArray(layoutTabs)) return layoutTabs;
9
+ if (typeof layoutTabs === "object") return getLayoutTabs(tree, layoutTabs);
10
+ if (layoutTabs !== false) return getLayoutTabs(tree);
11
+ return [];
12
+ }, [tree, layoutTabs]);
7
13
  return /* @__PURE__ */ jsx(LayoutBody, {
8
14
  tree,
9
- tabs: useMemo(() => {
10
- if (Array.isArray(layoutTabs)) return layoutTabs;
11
- if (typeof layoutTabs === "object") return getLayoutTabs(tree, layoutTabs);
12
- if (layoutTabs !== false) return getLayoutTabs(tree);
13
- return [];
14
- }, [tree, layoutTabs]),
15
+ tabs,
15
16
  tabMode,
16
17
  sidebar: sidebarProps,
17
18
  ...props,
@@ -238,8 +238,9 @@ function SidebarFolderLink({ className, style, ...props }) {
238
238
  });
239
239
  }
240
240
  function SidebarFolderContent({ className, children, ...props }) {
241
+ const depth = useFolderDepth();
241
242
  return /* @__PURE__ */ jsx(SidebarFolderContent$1, {
242
- className: cn("relative", useFolderDepth() === 1 && "before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:inset-s-2.5", className),
243
+ className: cn("relative", depth === 1 && "before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:inset-s-2.5", className),
243
244
  ...props,
244
245
  children: /* @__PURE__ */ jsx("div", {
245
246
  className: "flex flex-col gap-0.5 pt-0.5",
@@ -36,6 +36,7 @@ function GlassLayout(props) {
36
36
  use: useSidebar
37
37
  }
38
38
  };
39
+ const leftSpace = "calc(50% - var(--fd-main-width)/2 - var(--fd-left-width))";
39
40
  return /* @__PURE__ */ jsx(LayoutContext, {
40
41
  value: {
41
42
  props: {
@@ -53,7 +54,7 @@ function GlassLayout(props) {
53
54
  children: /* @__PURE__ */ jsxs("div", {
54
55
  id: "fd-glass-layout",
55
56
  className: "grid overflow-x-clip min-h-dvh [--fd-main-width:900px] [--fd-left-width:0px] [--fd-right-width:0px]",
56
- style: { gridTemplate: `"left left-margin main right-margin right" 1fr / var(--fd-left-width) calc(50% - var(--fd-main-width)/2 - var(--fd-left-width)) 1fr calc(50% - var(--fd-main-width)/2 - var(--fd-right-width)) var(--fd-right-width)` },
57
+ style: { gridTemplate: `"left left-margin main right-margin right" 1fr / var(--fd-left-width) ${leftSpace} 1fr calc(50% - var(--fd-main-width)/2 - var(--fd-right-width) + min(${leftSpace}, 0px)) var(--fd-right-width)` },
57
58
  children: [
58
59
  /* @__PURE__ */ jsx(slots.sidebar.drawer, {}),
59
60
  /* @__PURE__ */ jsx(slots.sidebar.main, {}),
@@ -110,7 +110,7 @@ function Sidebar({ className, children, ...props }) {
110
110
  ...props,
111
111
  children: [
112
112
  /* @__PURE__ */ jsxs("div", {
113
- className: "flex items-start gap-1 pt-4 px-3.5 empty:hidden",
113
+ className: "flex items-start gap-1 pt-4 ps-4.5 pe-3.5 empty:hidden",
114
114
  children: [/* @__PURE__ */ jsx(slots.navTitle, { className: "flex text-sm items-center font-semibold gap-2 me-auto" }), /* @__PURE__ */ jsxs("div", {
115
115
  className: "flex -mt-1.5 -me-1.5 empty:hidden",
116
116
  children: [menuItems.map((item, i) => item.type === "icon" && /* @__PURE__ */ jsx(SidebarIconLinkItem, { item }, i)), collapsible && /* @__PURE__ */ jsx("button", {
@@ -1,7 +1,7 @@
1
1
  import { ComponentProps } from "react";
2
2
  //#region src/layouts/home/slots/header.d.ts
3
3
  declare const navItemVariants: (props?: ({
4
- variant?: "icon" | "main" | "button" | null | undefined;
4
+ variant?: "button" | "main" | "icon" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  declare function Header(props: ComponentProps<'header'>): string | number | bigint | true | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined>;
7
7
  //#endregion
@@ -4,14 +4,15 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { useMemo } from "react";
5
5
  //#region src/layouts/notebook/index.tsx
6
6
  function DocsLayout({ tree, tabMode = "sidebar", sidebar: { tabs: defaultTabs, ...sidebarProps } = {}, children, tabs = defaultTabs, ...props }) {
7
+ const resolvedTabs = useMemo(() => {
8
+ if (Array.isArray(tabs)) return tabs;
9
+ if (typeof tabs === "object") return getLayoutTabs(tree, tabs);
10
+ if (tabs !== false) return getLayoutTabs(tree);
11
+ return [];
12
+ }, [tabs, tree]);
7
13
  return /* @__PURE__ */ jsx(LayoutBody, {
8
14
  tree,
9
- tabs: useMemo(() => {
10
- if (Array.isArray(tabs)) return tabs;
11
- if (typeof tabs === "object") return getLayoutTabs(tree, tabs);
12
- if (tabs !== false) return getLayoutTabs(tree);
13
- return [];
14
- }, [tabs, tree]),
15
+ tabs: resolvedTabs,
15
16
  tabMode,
16
17
  sidebar: sidebarProps,
17
18
  ...props,
@@ -123,8 +123,9 @@ function SidebarFolderLink({ className, style, ...props }) {
123
123
  });
124
124
  }
125
125
  function SidebarFolderContent({ className, children, ...props }) {
126
+ const depth = useFolderDepth();
126
127
  return /* @__PURE__ */ jsx(SidebarFolderContent$1, {
127
- className: cn("relative", useFolderDepth() === 1 && "before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:inset-s-2.5", className),
128
+ className: cn("relative", depth === 1 && "before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:inset-s-2.5", className),
128
129
  ...props,
129
130
  children: /* @__PURE__ */ jsx("div", {
130
131
  className: "flex flex-col gap-0.5 pt-0.5",
@@ -9,7 +9,8 @@ import { usePathname } from "fumadocs-core/framework";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  //#region src/layouts/shared/client.tsx
11
11
  function LinkItem({ ref, item, ...props }) {
12
- const active = isLinkItemActive(item, usePathname());
12
+ const pathname = usePathname();
13
+ const active = isLinkItemActive(item, pathname);
13
14
  return /* @__PURE__ */ jsx(Link, {
14
15
  ref,
15
16
  href: item.url,
@@ -14,7 +14,8 @@ function SidebarProvider({ children }) {
14
14
  const [open, setOpen] = useState(false);
15
15
  const [collapsed, setCollapsed] = useState(false);
16
16
  const closeOnRedirect = useRef(true);
17
- useOnChange(usePathname(), () => {
17
+ const pathname = usePathname();
18
+ useOnChange(pathname, () => {
18
19
  if (closeOnRedirect.current) setOpen(false);
19
20
  else closeOnRedirect.current = true;
20
21
  });
package/dist/style.css CHANGED
@@ -1648,9 +1648,6 @@
1648
1648
  .px-3 {
1649
1649
  padding-inline: calc(var(--spacing) * 3);
1650
1650
  }
1651
- .px-3\.5 {
1652
- padding-inline: calc(var(--spacing) * 3.5);
1653
- }
1654
1651
  .px-4 {
1655
1652
  padding-inline: calc(var(--spacing) * 4);
1656
1653
  }
@@ -1714,6 +1711,9 @@
1714
1711
  .ps-4 {
1715
1712
  padding-inline-start: calc(var(--spacing) * 4);
1716
1713
  }
1714
+ .ps-4\.5 {
1715
+ padding-inline-start: calc(var(--spacing) * 4.5);
1716
+ }
1717
1717
  .ps-8 {
1718
1718
  padding-inline-start: calc(var(--spacing) * 8);
1719
1719
  }
@@ -1729,6 +1729,9 @@
1729
1729
  .pe-3 {
1730
1730
  padding-inline-end: calc(var(--spacing) * 3);
1731
1731
  }
1732
+ .pe-3\.5 {
1733
+ padding-inline-end: calc(var(--spacing) * 3.5);
1734
+ }
1732
1735
  .pe-4 {
1733
1736
  padding-inline-end: calc(var(--spacing) * 4);
1734
1737
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-ui",
3
- "version": "16.14.0",
3
+ "version": "16.14.2",
4
4
  "description": "The Radix UI version of Fumadocs UI",
5
5
  "keywords": [
6
6
  "Docs",
@@ -147,13 +147,13 @@
147
147
  "@radix-ui/react-tabs": "^1.1.21",
148
148
  "class-variance-authority": "^0.7.1",
149
149
  "cnfast": "^0.1.0",
150
- "lucide-react": "^1.27.0",
150
+ "lucide-react": "^1.28.0",
151
151
  "motion": "^12.43.0",
152
152
  "next-themes": "^0.4.6",
153
153
  "react-remove-scroll": "^2.7.2",
154
154
  "rehype-raw": "^7.0.0",
155
155
  "scroll-into-view-if-needed": "^3.1.0",
156
- "shiki": "^4.3.1",
156
+ "shiki": "^4.4.1",
157
157
  "unist-util-visit": "^5.1.0",
158
158
  "@fumadocs/tailwind": "0.1.1"
159
159
  },
@@ -164,8 +164,8 @@
164
164
  "@types/hast": "^3.0.5",
165
165
  "@types/mdx": "^2.0.14",
166
166
  "@types/node": "^26.1.2",
167
- "@types/react": "^19.2.17",
168
- "@types/react-dom": "^19.2.3",
167
+ "@types/react": "^19.2.18",
168
+ "@types/react-dom": "^19.2.4",
169
169
  "fuma-cli": "^0.1.1",
170
170
  "react-medium-image-zoom": "^5.4.8",
171
171
  "tailwindcss": "^4.3.3",
@@ -173,7 +173,7 @@
173
173
  "unified": "^11.0.5",
174
174
  "@fumadocs/cli": "1.4.1",
175
175
  "tsconfig": "0.0.0",
176
- "fumadocs-core": "16.14.0"
176
+ "fumadocs-core": "16.14.2"
177
177
  },
178
178
  "peerDependencies": {
179
179
  "@types/mdx": "*",
@@ -182,7 +182,7 @@
182
182
  "react": "^19.2.0",
183
183
  "react-dom": "^19.2.0",
184
184
  "takumi-js": "*",
185
- "fumadocs-core": "16.14.0"
185
+ "fumadocs-core": "16.14.2"
186
186
  },
187
187
  "peerDependenciesMeta": {
188
188
  "next": {