fumadocs-ui 9.1.0 → 10.0.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.
@@ -20,24 +20,10 @@ function hasActive(items, url) {
20
20
  return false;
21
21
  });
22
22
  }
23
- function flattenTree(tree) {
24
- return tree.flatMap((node) => {
25
- if (node.type === "separator")
26
- return [];
27
- if (node.type === "folder") {
28
- const children = flattenTree(node.children);
29
- if (!node.root && node.index)
30
- return [node.index, ...children];
31
- return children;
32
- }
33
- return [node];
34
- });
35
- }
36
23
 
37
24
  export {
38
25
  defaultImageSizes,
39
26
  isActive,
40
27
  replaceOrDefault,
41
- hasActive,
42
- flattenTree
28
+ hasActive
43
29
  };
@@ -1,7 +1,6 @@
1
1
  import {
2
- flattenTree,
3
2
  hasActive
4
- } from "./chunk-EDUYFB4P.js";
3
+ } from "./chunk-7F2LGCS6.js";
5
4
 
6
5
  // src/contexts/tree.tsx
7
6
  import { usePathname } from "next/navigation";
@@ -20,6 +19,19 @@ function findRoot(items, pathname) {
20
19
  }
21
20
  }
22
21
  }
22
+ function getNavigationList(tree) {
23
+ return tree.flatMap((node) => {
24
+ if (node.type === "separator")
25
+ return [];
26
+ if (node.type === "folder") {
27
+ const children = getNavigationList(node.children);
28
+ if (!node.root && node.index)
29
+ children.unshift(node.index);
30
+ return children;
31
+ }
32
+ return !node.external ? [node] : [];
33
+ });
34
+ }
23
35
  function TreeContextProvider({
24
36
  children,
25
37
  tree
@@ -27,10 +39,9 @@ function TreeContextProvider({
27
39
  const pathname = usePathname();
28
40
  const value = useMemo(() => {
29
41
  const root = findRoot(tree.children, pathname) ?? tree;
30
- const list = flattenTree(root.children);
31
42
  return {
32
43
  root,
33
- list,
44
+ navigation: getNavigationList(root.children),
34
45
  tree
35
46
  };
36
47
  }, [pathname, tree]);
@@ -13,7 +13,7 @@ var ScrollArea = React.forwardRef(({ className, children, ...props }, ref) => /*
13
13
  className: twMerge("overflow-hidden", className),
14
14
  ...props,
15
15
  children: [
16
- /* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
16
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, { className: "size-full rounded-[inherit]", children }),
17
17
  /* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {}),
18
18
  /* @__PURE__ */ jsx(ScrollBar, { orientation: "horizontal" }),
19
19
  /* @__PURE__ */ jsx(ScrollBar, { orientation: "vertical" })
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ScrollArea
3
- } from "./chunk-ZOR33LFA.js";
3
+ } from "./chunk-N7GXEVOA.js";
4
4
  import {
5
5
  useCopyButton
6
6
  } from "./chunk-24NYFO7H.js";
@@ -32,7 +32,7 @@ var CodeBlock = forwardRef(
32
32
  clone.querySelectorAll(".nd-copy-ignore").forEach((node) => {
33
33
  node.remove();
34
34
  });
35
- const text = clone.textContent || "";
35
+ const text = clone.textContent ?? "";
36
36
  void navigator.clipboard.writeText(text);
37
37
  }, []);
38
38
  return /* @__PURE__ */ jsxs(
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { HTMLAttributes, ReactNode } from 'react';
3
3
 
4
- declare const Callout: React.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "title" | "icon" | "type"> & {
4
+ declare const Callout: React.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "title" | "type" | "icon"> & {
5
5
  title?: ReactNode;
6
6
  /**
7
7
  * @defaultValue info
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  CodeBlock,
4
4
  Pre
5
- } from "../chunk-3YZ7NCMG.js";
6
- import "../chunk-ZOR33LFA.js";
5
+ } from "../chunk-Q3BC4RGT.js";
6
+ import "../chunk-N7GXEVOA.js";
7
7
  import "../chunk-24NYFO7H.js";
8
8
  import "../chunk-7GZKFBAP.js";
9
9
  import "../chunk-TK3TM3MR.js";
@@ -3,12 +3,16 @@ import { SharedProps } from './search.mjs';
3
3
  import 'fumadocs-core/search/shared';
4
4
 
5
5
  type DefaultSearchDialogProps = SharedProps & ContentProps;
6
- declare function DefaultSearchDialog({ tag, footer, ...props }: DefaultSearchDialogProps): JSX.Element;
6
+ declare function DefaultSearchDialog({ tag, api, footer, ...props }: DefaultSearchDialogProps): JSX.Element;
7
7
  interface ContentProps {
8
8
  /**
9
9
  * Search tag
10
10
  */
11
11
  tag?: string;
12
+ /**
13
+ * Search API URL
14
+ */
15
+ api?: string;
12
16
  footer?: ReactNode;
13
17
  }
14
18
 
@@ -16,14 +16,15 @@ import { useDocsSearch } from "fumadocs-core/search/client";
16
16
  import { jsx } from "react/jsx-runtime";
17
17
  function DefaultSearchDialog({
18
18
  tag,
19
+ api,
19
20
  footer,
20
21
  ...props
21
22
  }) {
22
- return /* @__PURE__ */ jsx(SearchDialog, { ...props, children: /* @__PURE__ */ jsx(Content, { tag, footer }) });
23
+ return /* @__PURE__ */ jsx(SearchDialog, { ...props, children: /* @__PURE__ */ jsx(Content, { tag, footer, api }) });
23
24
  }
24
- function Content({ tag, footer }) {
25
+ function Content({ tag, footer, api }) {
25
26
  const { locale } = useI18n();
26
- const { search, setSearch, query } = useDocsSearch(locale, tag);
27
+ const { search, setSearch, query } = useDocsSearch(locale, tag, api);
27
28
  return /* @__PURE__ */ jsx(
28
29
  SearchDialogContent,
29
30
  {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  defaultImageSizes
4
- } from "../chunk-EDUYFB4P.js";
4
+ } from "../chunk-7F2LGCS6.js";
5
5
  import "../chunk-6C3VEZWH.js";
6
6
 
7
7
  // src/components/image-zoom.tsx
@@ -7,7 +7,7 @@ interface ObjectType {
7
7
  /**
8
8
  * Additional description of the field
9
9
  */
10
- description?: string;
10
+ description?: ReactNode;
11
11
  type: string;
12
12
  typeDescription?: string;
13
13
  /**
@@ -12,37 +12,42 @@ import "../chunk-6C3VEZWH.js";
12
12
  // src/components/type-table.tsx
13
13
  import { InfoIcon } from "lucide-react";
14
14
  import Link from "next/link";
15
+ import { cva } from "class-variance-authority";
15
16
  import { jsx, jsxs } from "react/jsx-runtime";
16
17
  function Info({ children }) {
17
18
  return /* @__PURE__ */ jsxs(Popover, { children: [
18
19
  /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }) }),
19
- /* @__PURE__ */ jsx(PopoverContent, { className: "text-sm", children })
20
+ /* @__PURE__ */ jsx(PopoverContent, { className: "prose text-sm", children })
20
21
  ] });
21
22
  }
23
+ var th = cva("p-2 font-medium first:pl-0 last:pr-0");
24
+ var td = cva("p-2 first:pl-0 last:pr-0");
25
+ var field = cva("inline-flex flex-row items-center gap-1");
26
+ var code = cva("rounded-md bg-secondary p-1 text-secondary-foreground", {
27
+ variants: {
28
+ color: { primary: "bg-primary/10 text-primary" }
29
+ }
30
+ });
22
31
  function TypeTable({
23
32
  type
24
33
  }) {
25
- const th = twMerge("p-2 font-medium first:pl-0 last:pr-0");
26
- const td = twMerge("p-2 first:pl-0 last:pr-0");
27
- const field = twMerge("inline-flex flex-row items-center gap-1");
28
- const code = twMerge("rounded-md bg-secondary p-1 text-secondary-foreground");
29
34
  return /* @__PURE__ */ jsx("div", { className: "not-prose overflow-auto whitespace-nowrap", children: /* @__PURE__ */ jsxs("table", { className: "my-4 w-full text-left text-sm text-muted-foreground", children: [
30
35
  /* @__PURE__ */ jsx("thead", { className: "border-b", children: /* @__PURE__ */ jsxs("tr", { children: [
31
- /* @__PURE__ */ jsx("th", { className: twMerge(th, "w-[45%]"), children: "Prop" }),
32
- /* @__PURE__ */ jsx("th", { className: twMerge(th, "w-[30%]"), children: "Type" }),
33
- /* @__PURE__ */ jsx("th", { className: twMerge(th, "w-[25%]"), children: "Default" })
36
+ /* @__PURE__ */ jsx("th", { className: twMerge(th(), "w-[45%]"), children: "Prop" }),
37
+ /* @__PURE__ */ jsx("th", { className: twMerge(th(), "w-[30%]"), children: "Type" }),
38
+ /* @__PURE__ */ jsx("th", { className: twMerge(th(), "w-[25%]"), children: "Default" })
34
39
  ] }) }),
35
40
  /* @__PURE__ */ jsx("tbody", { className: "border-collapse divide-y divide-border", children: Object.entries(type).map(([key, value]) => /* @__PURE__ */ jsxs("tr", { children: [
36
- /* @__PURE__ */ jsx("td", { className: td, children: /* @__PURE__ */ jsxs("div", { className: field, children: [
37
- /* @__PURE__ */ jsx("code", { className: twMerge(code, "bg-primary/10 text-primary"), children: key }),
41
+ /* @__PURE__ */ jsx("td", { className: td(), children: /* @__PURE__ */ jsxs("div", { className: field(), children: [
42
+ /* @__PURE__ */ jsx("code", { className: twMerge(code({ color: "primary" })), children: key }),
38
43
  value.description ? /* @__PURE__ */ jsx(Info, { children: value.description }) : null
39
44
  ] }) }),
40
- /* @__PURE__ */ jsx("td", { className: td, children: /* @__PURE__ */ jsxs("div", { className: field, children: [
41
- /* @__PURE__ */ jsx("code", { className: code, children: value.type }),
45
+ /* @__PURE__ */ jsx("td", { className: td(), children: /* @__PURE__ */ jsxs("div", { className: field(), children: [
46
+ /* @__PURE__ */ jsx("code", { className: code(), children: value.type }),
42
47
  value.typeDescription ? /* @__PURE__ */ jsx(Info, { children: /* @__PURE__ */ jsx("pre", { className: "overflow-auto bg-secondary text-secondary-foreground", children: value.typeDescription }) }) : null,
43
48
  value.typeDescriptionLink ? /* @__PURE__ */ jsx(Link, { href: value.typeDescriptionLink, children: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }) }) : null
44
49
  ] }) }),
45
- /* @__PURE__ */ jsx("td", { className: td, children: value.default ? /* @__PURE__ */ jsx("code", { className: code, children: value.default }) : /* @__PURE__ */ jsx("span", { children: "-" }) })
50
+ /* @__PURE__ */ jsx("td", { className: td(), children: value.default ? /* @__PURE__ */ jsx("code", { className: code(), children: value.default }) : /* @__PURE__ */ jsx("span", { children: "-" }) })
46
51
  ] }, key)) })
47
52
  ] }) });
48
53
  }
@@ -1,4 +1,4 @@
1
- export { T as TreeContextProvider } from './tree-Zwtp9xPv.mjs';
1
+ export { T as TreeContextProvider } from './tree-ersey5_u.mjs';
2
2
  export { N as Nav, S as Sidebar } from './layout-W7dJ6OHQ.mjs';
3
3
  import 'fumadocs-core/server';
4
4
  import 'react';
@@ -5,10 +5,10 @@ import {
5
5
  import {
6
6
  TreeContextProvider,
7
7
  useTreeContext
8
- } from "./chunk-UIZNMCLD.js";
8
+ } from "./chunk-C4PI62MH.js";
9
9
  import {
10
10
  ScrollArea
11
- } from "./chunk-ZOR33LFA.js";
11
+ } from "./chunk-N7GXEVOA.js";
12
12
  import {
13
13
  Popover,
14
14
  PopoverContent,
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  hasActive,
19
19
  isActive
20
- } from "./chunk-EDUYFB4P.js";
20
+ } from "./chunk-7F2LGCS6.js";
21
21
  import {
22
22
  useSearchContext
23
23
  } from "./chunk-36MVEJ25.js";
@@ -286,7 +286,7 @@ NavItem.displayName = "NavItem";
286
286
 
287
287
  // src/components/sidebar.tsx
288
288
  import { cva as cva3 } from "class-variance-authority";
289
- import { ChevronDown } from "lucide-react";
289
+ import { ChevronDown, ExternalLinkIcon } from "lucide-react";
290
290
  import * as Base from "fumadocs-core/sidebar";
291
291
  import { usePathname as usePathname2 } from "next/navigation";
292
292
  import { createContext, useContext, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
@@ -306,7 +306,7 @@ var itemVariants = cva3(
306
306
  var defaultComponents = {
307
307
  Folder: FolderNode,
308
308
  Separator: SeparatorNode,
309
- Item: ({ item }) => /* @__PURE__ */ jsx3(BaseItem, { item: { text: item.name, url: item.url, icon: item.icon } })
309
+ Item: ({ item: { name, ...rest } }) => /* @__PURE__ */ jsx3(BaseItem, { item: { text: name, ...rest } })
310
310
  };
311
311
  var SidebarContext = createContext({
312
312
  defaultOpenLevel: 1,
@@ -380,6 +380,7 @@ function BaseItem({
380
380
  }) {
381
381
  const pathname = usePathname2();
382
382
  const active = isActive(item.url, pathname, nested);
383
+ const defaultIcon = item.external ? /* @__PURE__ */ jsx3(ExternalLinkIcon, {}) : null;
383
384
  return /* @__PURE__ */ jsxs3(
384
385
  Link2,
385
386
  {
@@ -387,7 +388,7 @@ function BaseItem({
387
388
  external: item.external,
388
389
  className: twMerge(itemVariants({ active })),
389
390
  children: [
390
- item.icon,
391
+ item.icon ?? defaultIcon,
391
392
  item.text
392
393
  ]
393
394
  }
@@ -399,7 +400,7 @@ function FolderNode({
399
400
  }) {
400
401
  const { defaultOpenLevel } = useContext(SidebarContext);
401
402
  const pathname = usePathname2();
402
- const active = index && isActive(index.url, pathname, false);
403
+ const active = index !== void 0 && isActive(index.url, pathname, false);
403
404
  const childActive = useMemo(
404
405
  () => hasActive(children, pathname),
405
406
  [children, pathname]
package/dist/layout.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  } from "./layout.client.js"
6
6
  import {
7
7
  replaceOrDefault
8
- } from "./chunk-EDUYFB4P.js";
8
+ } from "./chunk-7F2LGCS6.js";
9
9
  import {
10
10
  twMerge
11
11
  } from "./chunk-TK3TM3MR.js";
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  CodeBlock,
4
4
  Pre
5
- } from "./chunk-3YZ7NCMG.js";
6
- import "./chunk-ZOR33LFA.js";
5
+ } from "./chunk-Q3BC4RGT.js";
6
+ import "./chunk-N7GXEVOA.js";
7
7
  import "./chunk-24NYFO7H.js";
8
8
  import "./chunk-7GZKFBAP.js";
9
9
  import "./chunk-TK3TM3MR.js";
package/dist/mdx.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Pre } from "./mdx.client.js"
2
2
  import {
3
3
  defaultImageSizes
4
- } from "./chunk-EDUYFB4P.js";
4
+ } from "./chunk-7F2LGCS6.js";
5
5
  import {
6
6
  Card,
7
7
  Cards
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import {
3
3
  useTreeContext
4
- } from "./chunk-UIZNMCLD.js";
5
- import "./chunk-EDUYFB4P.js";
4
+ } from "./chunk-C4PI62MH.js";
5
+ import "./chunk-7F2LGCS6.js";
6
6
  import {
7
7
  useI18n
8
8
  } from "./chunk-YAHHY62W.js";
@@ -143,12 +143,14 @@ function Footer({ items }) {
143
143
  const { previous, next } = useMemo(() => {
144
144
  if (items)
145
145
  return items;
146
- const currentIndex = tree.list.findIndex((item) => item.url === pathname);
146
+ const currentIndex = tree.navigation.findIndex(
147
+ (item) => item.url === pathname
148
+ );
147
149
  return {
148
- previous: tree.list[currentIndex - 1],
149
- next: tree.list[currentIndex + 1]
150
+ previous: tree.navigation[currentIndex - 1],
151
+ next: tree.navigation[currentIndex + 1]
150
152
  };
151
- }, [items, pathname, tree.list]);
153
+ }, [items, pathname, tree.navigation]);
152
154
  return /* @__PURE__ */ jsxs3("div", { className: "mt-4 flex flex-row flex-wrap gap-4 border-t py-12", children: [
153
155
  previous ? /* @__PURE__ */ jsxs3(Link2, { href: previous.url, className: footerItem(), children: [
154
156
  /* @__PURE__ */ jsx3(ChevronLeftIcon, { className: "size-5 shrink-0" }),
package/dist/page.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  } from "./page.client.js"
7
7
  import {
8
8
  replaceOrDefault
9
- } from "./chunk-EDUYFB4P.js";
9
+ } from "./chunk-7F2LGCS6.js";
10
10
  import {
11
11
  twMerge
12
12
  } from "./chunk-TK3TM3MR.js";
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { ComponentType, ReactNode } from 'react';
3
3
  import { SharedProps } from './components/dialog/search.mjs';
4
4
  export { u as useI18n } from './i18n-dw7ODAws.mjs';
5
- export { u as useTreeContext } from './tree-Zwtp9xPv.mjs';
5
+ export { u as useTreeContext } from './tree-ersey5_u.mjs';
6
6
  import 'fumadocs-core/search/shared';
7
7
  import 'fumadocs-core/server';
8
8
 
package/dist/provider.js CHANGED
@@ -5,8 +5,8 @@ import {
5
5
  } from "./chunk-PLXR6QNH.js";
6
6
  import {
7
7
  useTreeContext
8
- } from "./chunk-UIZNMCLD.js";
9
- import "./chunk-EDUYFB4P.js";
8
+ } from "./chunk-C4PI62MH.js";
9
+ import "./chunk-7F2LGCS6.js";
10
10
  import {
11
11
  SearchProvider,
12
12
  useSearchContext
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{color:inherit;border-top-width:1px;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}[type=button]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=reset]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder{opacity:1;color:#9ca3af}textarea::-ms-input-placeholder{opacity:1;color:#9ca3af}textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--popover:0 0% 100%;--popover-foreground:0 0% 15.1%;--card:0 0% 99.7%;--card-foreground:0 0% 3.9%;--border:0 0% 89.8%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--accent:0 0% 94.1%;--accent-foreground:0 0% 9%;--ring:0 0% 63.9%}.dark{--background:0 0% 3.9%;--foreground:0 0% 98%;--muted:0 0% 12.9%;--muted-foreground:0 0% 60.9%;--popover:0 0% 7%;--popover-foreground:0 0% 88%;--card:0 0% 8%;--card-foreground:0 0% 98%;--border:0 0% 18%;--primary:0 0% 98%;--primary-foreground:0 0% 9%;--secondary:0 0% 12.9%;--secondary-foreground:0 0% 98%;--accent:0 0% 14.9%;--accent-foreground:0 0% 90%;--ring:0 0% 14.9%}*{border-color:hsl(var(--border)/1)}body{background-color:hsl(var(--background)/1);background-image:var(--background-image);color:hsl(var(--foreground)/1)}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width:1400px){.container{max-width:1400px}}.prose{color:var(--tw-prose-body);max-width:none}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:hsl(var(--primary)/1);text-decoration-color:hsl(var(--primary)/1);font-weight:400;transition:opacity .3s}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-left:0;list-style-type:disc;list-style-position:inside}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);border-radius:.3125rem;padding:.1875em .375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);border:1px solid;border-color:hsl(var(--border)/1);background:hsl(var(--muted)/1);border-radius:5px;padding:3px;font-size:13px;font-weight:400}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding:.857143em 1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;text-align:left;white-space:nowrap;width:100%;margin-top:2em;margin-bottom:2em;font-size:14px;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-bottom:.571429em;padding-left:.571429em;padding-right:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:hsl(var(--foreground)/90%);--tw-prose-headings:hsl(var(--foreground)/1);--tw-prose-lead:hsl(var(--foreground)/1);--tw-prose-links:hsl(var(--foreground)/1);--tw-prose-bold:hsl(var(--foreground)/1);--tw-prose-counters:hsl(var(--muted-foreground)/1);--tw-prose-bullets:hsl(var(--muted-foreground)/1);--tw-prose-hr:hsl(var(--border)/1);--tw-prose-quotes:hsl(var(--foreground)/1);--tw-prose-quote-borders:hsl(var(--border)/1);--tw-prose-captions:hsl(var(--foreground)/1);--tw-prose-kbd:hsl(var(--foreground)/1);--tw-prose-kbd-shadows:hsl(var(--primary)/50%);--tw-prose-code:hsl(var(--foreground)/1);--tw-prose-th-borders:hsl(var(--border)/1);--tw-prose-td-borders:hsl(var(--border)/1);--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:16px;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose :where(a:hover):not(:where([class~=not-prose],[class~=not-prose] *)){opacity:.8}.nd-codeblock span{color:var(--shiki-light)}.dark .nd-codeblock span{color:var(--shiki-dark)}.nd-codeblock .line{padding-left:1rem;padding-right:1rem;font-size:13px}.nd-codeblock .highlighted{background-color:hsl(var(--primary)/10%);width:100%;display:inline-block}.nd-codeblock .highlighted-word{border:1px solid;border-color:hsl(var(--primary)/50%);background-color:hsl(var(--primary)/10%);border-radius:2px;margin:-1px -3px;padding:1px 2px}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{top:0;bottom:0;left:0;right:0}.bottom-8{bottom:2rem}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-2{right:.5rem}.right-4{right:1rem}.right-8{right:2rem}.top-0{top:0}.top-14{top:3.5rem}.top-16{top:4rem}.top-2{top:.5rem}.top-4{top:1rem}.top-\[10vh\]{top:10vh}.z-50{z-index:50}.z-\[2\]{z-index:2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mr-2{margin-right:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-7{width:1.75rem;height:1.75rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-9{height:2.25rem}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-body{height:calc(100vh - 4rem);height:calc(100dvh - 4rem)}.h-fit{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-\[460px\]{max-height:460px}.max-h-\[80vh\]{max-height:80vh}.min-h-10{min-height:2.5rem}.w-0{width:0}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-80{width:20rem}.w-\[220px\]{width:220px}.w-\[25\%\]{width:25%}.w-\[30\%\]{width:30%}.w-\[45\%\]{width:45%}.w-\[98vw\]{width:98vw}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-\[260px\]{min-width:260px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[240px\]{max-width:240px}.max-w-\[640px\]{max-width:640px}.max-w-\[90vw\]{max-width:90vw}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-left{transform-origin:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.translate-y-20{--tw-translate-y:5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.select-none{-webkit-user-select:none;-ms-user-select:none;user-select:none}.scroll-m-20{scroll-margin:5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-6{column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(6rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:hsl(var(--border)/var(--tw-divide-opacity))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-foreground\/10{border-color:hsl(var(--foreground)/.1)}.border-green-400\/50{border-color:rgba(74,222,128,.5)}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity))}.border-red-400\/50{border-color:rgba(248,113,113,.5)}.border-transparent{border-color:transparent}.border-yellow-400\/50{border-color:rgba(250,204,21,.5)}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity))}.bg-background\/50{background-color:hsl(var(--background)/.5)}.bg-border{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity))}.bg-card{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity))}.bg-green-400\/20{background-color:rgba(74,222,128,.2)}.bg-muted{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity))}.bg-popover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-400\/20{background-color:rgba(248,113,113,.2)}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity))}.bg-secondary\/50{background-color:hsl(var(--secondary)/.5)}.bg-transparent{background-color:transparent}.bg-yellow-400\/20{background-color:rgba(250,204,21,.2)}.fill-blue-500{fill:#3b82f6}.fill-orange-500{fill:#f97316}.fill-red-500{fill:#ef4444}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-end:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:right}.text-end:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:right}.text-end:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:left}.text-end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:left}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-accent-foreground{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.text-card{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity))}.text-card-foreground{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity))}.text-foreground{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgba(22,163,74,var(--tw-text-opacity))}.text-muted-foreground{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.text-popover-foreground{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgba(220,38,38,var(--tw-text-opacity))}.text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgba(202,138,4,var(--tw-text-opacity))}.underline{text-decoration-line:underline}.accent-foreground{accent-color:hsl(var(--foreground)/1)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-\[0_-1px_0_var\(--tw-shadow\)_inset\]{--tw-shadow:0 -1px 0 var(--tw-shadow)inset;--tw-shadow-colored:inset 0 -1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-border{--tw-shadow-color:hsl(var(--border)/1);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline-offset:2px;outline:2px solid transparent}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background)/1)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-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);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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-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);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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.steps{counter-reset:step;border-left-width:1px;margin-left:1rem;padding-left:1.75rem;position:relative}.step:before{background-color:hsl(var(--secondary)/1);color:hsl(var(--secondary-foreground)/1);content:counter(step);counter-increment:step;border-radius:9999px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;line-height:1.25rem;display:flex;position:absolute;left:-1rem}.prose-no-margin>:first-child{margin-top:0}.prose-no-margin>:last-child{margin-bottom:0}.placeholder\:text-muted-foreground::-ms-input-placeholder{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.first\:mt-0:first-child{margin-top:0}.first\:pl-0:first-child{padding-left:0}.first\:pt-0:first-child{padding-top:0}.last\:pr-0:last-child{padding-right:0}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent)/.5)}.hover\:bg-muted\/80:hover{background-color:hsl(var(--muted)/.8)}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.hover\:text-accent-foreground\/80:hover{color:hsl(var(--accent-foreground)/.8)}.hover\:text-foreground:hover{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity))}.focus\:bg-accent:focus{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.focus\:text-accent-foreground:focus{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid transparent}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid transparent}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.aria-selected\:bg-accent[aria-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.aria-selected\:text-accent-foreground[aria-selected=true]{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{opacity:.5;height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:.2s ease-out accordion-up}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height)}to{opacity:0;height:0}}.data-\[state\=closed\]\:animate-collapsible-up[data-state=closed]{animation:.15s ease-out collapsible-up}@keyframes dialog-out{0%{transform:scale(1)translate(-50%)}to{transform:scale(.95)translateY(-50%,0);opacity:0}}.data-\[state\=closed\]\:animate-dialog-out[data-state=closed]{animation:.3s cubic-bezier(.32,.72,0,1) dialog-out}@keyframes fade-out{to{opacity:0}}.data-\[state\=closed\]\:animate-fade-out[data-state=closed]{animation:.3s fade-out}@keyframes popover-out{0%{opacity:1;transform:matrix(1,0,0,1,0,0)}to{opacity:0;transform:matrix(.95,0,0,.95,0,-9.5)}}.data-\[state\=closed\]\:animate-popover-out[data-state=closed]{animation:.15s popover-out}.data-\[state\=hidden\]\:animate-fade-out[data-state=hidden]{animation:.3s fade-out}@keyframes accordion-down{0%{opacity:.5;height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:.2s ease-out accordion-down}@keyframes collapsible-down{0%{opacity:0;height:0}to{height:var(--radix-collapsible-content-height)}}.data-\[state\=open\]\:animate-collapsible-down[data-state=open]{animation:.15s ease-out collapsible-down}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)translate(-50%)}to{transform:scale(1)translate(-50%)}}.data-\[state\=open\]\:animate-dialog-in[data-state=open]{animation:.2s cubic-bezier(.32,.72,0,1) dialog-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.data-\[state\=open\]\:animate-fade-in[data-state=open]{animation:.3s fade-in}@keyframes popover-in{0%{opacity:0;transform:matrix(.95,0,0,.95,0,-9.5)}to{opacity:1;transform:matrix(1,0,0,1,0,0)}}.data-\[state\=open\]\:animate-popover-in[data-state=open]{animation:.15s popover-in}.data-\[state\=active\]\:border-primary[data-state=active]{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-primary[data-active=true]{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.data-\[state\=active\]\:text-primary[data-state=active]{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.group\/accordion[data-state=open] .group-data-\[state\=open\]\/accordion\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}:is(.dark .dark\:bg-secondary){--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:text-green-400){--tw-text-opacity:1;color:rgba(74,222,128,var(--tw-text-opacity))}:is(.dark .dark\:text-muted-foreground){--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}:is(.dark .dark\:text-red-400){--tw-text-opacity:1;color:rgba(248,113,113,var(--tw-text-opacity))}:is(.dark .dark\:text-secondary-foreground){--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-400){--tw-text-opacity:1;color:rgba(250,204,21,var(--tw-text-opacity))}@media not all and (min-width:1280px){.max-xl\:hidden{display:none}}@media not all and (min-width:1024px){.max-lg\:hidden{display:none}}@media not all and (min-width:768px){.max-md\:fixed{position:fixed}.max-md\:inset-0{top:0;bottom:0;left:0;right:0}.max-md\:z-40{z-index:40}.max-md\:hidden{display:none}.max-md\:bg-background\/80{background-color:hsl(var(--background)/.8)}.max-md\:px-4{padding-left:1rem;padding-right:1rem}.max-md\:pt-16{padding-top:4rem}.max-md\:backdrop-blur-md{--tw-backdrop-blur:blur(12px);-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);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)}.max-md\:data-\[open\=false\]\:hidden[data-open=false]{display:none}}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:sticky{position:-webkit-sticky;position:sticky}.md\:top-16{top:4rem}.md\:hidden{display:none}.md\:h-body{height:calc(100vh - 4rem);height:calc(100dvh - 4rem)}.md\:w-\[240px\]{width:240px}.md\:gap-2{gap:.5rem}.md\:pr-3{padding-right:.75rem}.md\:pt-10{padding-top:2.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:hidden{display:none}}@media (min-width:1280px){.xl\:hidden{display:none}.xl\:w-\[260px\]{width:260px}.xl\:w-\[40\%\]{width:40%}.xl\:min-w-\[400px\]{min-width:400px}.xl\:flex-row{flex-direction:row}.xl\:gap-12{gap:3rem}}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&_\[cmdk-group-heading\]\]\:px-3 [cmdk-group-heading]{padding-left:.75rem;padding-right:.75rem}.\[\&_\[cmdk-group-heading\]\]\:py-2 [cmdk-group-heading]{padding-top:.5rem;padding-bottom:.5rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_svg\]\:size-3\.5 svg{width:.875rem;height:.875rem}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:size-5 svg{width:1.25rem;height:1.25rem}
1
+ *,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{color:inherit;border-top-width:1px;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}[type=button]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=reset]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder{opacity:1;color:#9ca3af}textarea::-ms-input-placeholder{opacity:1;color:#9ca3af}textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--popover:0 0% 100%;--popover-foreground:0 0% 15.1%;--card:0 0% 99.7%;--card-foreground:0 0% 3.9%;--border:0 0% 89.8%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--accent:0 0% 94.1%;--accent-foreground:0 0% 9%;--ring:0 0% 63.9%}.dark{--background:0 0% 3.9%;--foreground:0 0% 98%;--muted:0 0% 12.9%;--muted-foreground:0 0% 60.9%;--popover:0 0% 7%;--popover-foreground:0 0% 88%;--card:0 0% 8%;--card-foreground:0 0% 98%;--border:0 0% 18%;--primary:0 0% 98%;--primary-foreground:0 0% 9%;--secondary:0 0% 12.9%;--secondary-foreground:0 0% 98%;--accent:0 0% 14.9%;--accent-foreground:0 0% 90%;--ring:0 0% 14.9%}*{border-color:hsl(var(--border)/1)}body{background-color:hsl(var(--background)/1);background-image:var(--background-image);color:hsl(var(--foreground)/1)}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width:1400px){.container{max-width:1400px}}.prose{color:var(--tw-prose-body);max-width:none}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:hsl(var(--primary)/1);text-decoration-color:hsl(var(--primary)/1);font-weight:400;transition:opacity .3s}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-left:0;list-style-type:disc;list-style-position:inside}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);border-radius:.3125rem;padding:.1875em .375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);border:1px solid;border-color:hsl(var(--border)/1);background:hsl(var(--muted)/1);border-radius:5px;padding:3px;font-size:13px;font-weight:400}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding:.857143em 1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;text-align:left;white-space:nowrap;width:100%;margin-top:2em;margin-bottom:2em;font-size:14px;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-bottom:.571429em;padding-left:.571429em;padding-right:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:hsl(var(--foreground)/90%);--tw-prose-headings:hsl(var(--foreground)/1);--tw-prose-lead:hsl(var(--foreground)/1);--tw-prose-links:hsl(var(--foreground)/1);--tw-prose-bold:hsl(var(--foreground)/1);--tw-prose-counters:hsl(var(--muted-foreground)/1);--tw-prose-bullets:hsl(var(--muted-foreground)/1);--tw-prose-hr:hsl(var(--border)/1);--tw-prose-quotes:hsl(var(--foreground)/1);--tw-prose-quote-borders:hsl(var(--border)/1);--tw-prose-captions:hsl(var(--foreground)/1);--tw-prose-kbd:hsl(var(--foreground)/1);--tw-prose-kbd-shadows:hsl(var(--primary)/50%);--tw-prose-code:hsl(var(--foreground)/1);--tw-prose-th-borders:hsl(var(--border)/1);--tw-prose-td-borders:hsl(var(--border)/1);--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:16px;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose :where(a:hover):not(:where([class~=not-prose],[class~=not-prose] *)){opacity:.8}.nd-codeblock span{color:var(--shiki-light)}.dark .nd-codeblock span{color:var(--shiki-dark)}.nd-codeblock .line{padding-left:1rem;padding-right:1rem;font-size:13px}.nd-codeblock .highlighted{background-color:hsl(var(--primary)/10%);width:100%;display:inline-block}.nd-codeblock .highlighted-word{border:1px solid;border-color:hsl(var(--primary)/50%);background-color:hsl(var(--primary)/10%);border-radius:2px;margin:-1px -3px;padding:1px 2px}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{top:0;bottom:0;left:0;right:0}.bottom-8{bottom:2rem}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-2{right:.5rem}.right-4{right:1rem}.right-8{right:2rem}.top-0{top:0}.top-14{top:3.5rem}.top-16{top:4rem}.top-2{top:.5rem}.top-4{top:1rem}.top-\[10vh\]{top:10vh}.z-50{z-index:50}.z-\[2\]{z-index:2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mr-2{margin-right:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-7{width:1.75rem;height:1.75rem}.size-full{width:100%;height:100%}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-9{height:2.25rem}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-body{height:calc(100vh - 4rem);height:calc(100dvh - 4rem)}.h-fit{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-\[460px\]{max-height:460px}.max-h-\[80vh\]{max-height:80vh}.min-h-10{min-height:2.5rem}.w-0{width:0}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-80{width:20rem}.w-\[220px\]{width:220px}.w-\[25\%\]{width:25%}.w-\[30\%\]{width:30%}.w-\[45\%\]{width:45%}.w-\[98vw\]{width:98vw}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-\[260px\]{min-width:260px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[240px\]{max-width:240px}.max-w-\[640px\]{max-width:640px}.max-w-\[90vw\]{max-width:90vw}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-left{transform-origin:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.translate-y-20{--tw-translate-y:5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.select-none{-webkit-user-select:none;-ms-user-select:none;user-select:none}.scroll-m-20{scroll-margin:5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-6{column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(6rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:hsl(var(--border)/var(--tw-divide-opacity))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-foreground\/10{border-color:hsl(var(--foreground)/.1)}.border-green-400\/50{border-color:rgba(74,222,128,.5)}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity))}.border-red-400\/50{border-color:rgba(248,113,113,.5)}.border-transparent{border-color:transparent}.border-yellow-400\/50{border-color:rgba(250,204,21,.5)}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity))}.bg-background\/50{background-color:hsl(var(--background)/.5)}.bg-border{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity))}.bg-card{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity))}.bg-green-400\/20{background-color:rgba(74,222,128,.2)}.bg-muted{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity))}.bg-popover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-400\/20{background-color:rgba(248,113,113,.2)}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity))}.bg-secondary\/50{background-color:hsl(var(--secondary)/.5)}.bg-transparent{background-color:transparent}.bg-yellow-400\/20{background-color:rgba(250,204,21,.2)}.fill-blue-500{fill:#3b82f6}.fill-orange-500{fill:#f97316}.fill-red-500{fill:#ef4444}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-end:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:right}.text-end:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:right}.text-end:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:left}.text-end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:left}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-accent-foreground{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.text-card{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity))}.text-card-foreground{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity))}.text-foreground{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgba(22,163,74,var(--tw-text-opacity))}.text-muted-foreground{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.text-popover-foreground{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgba(220,38,38,var(--tw-text-opacity))}.text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgba(202,138,4,var(--tw-text-opacity))}.underline{text-decoration-line:underline}.accent-foreground{accent-color:hsl(var(--foreground)/1)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-\[0_-1px_0_var\(--tw-shadow\)_inset\]{--tw-shadow:0 -1px 0 var(--tw-shadow)inset;--tw-shadow-colored:inset 0 -1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-border{--tw-shadow-color:hsl(var(--border)/1);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline-offset:2px;outline:2px solid transparent}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background)/1)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-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);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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-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);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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.steps{counter-reset:step;border-left-width:1px;margin-left:1rem;padding-left:1.75rem;position:relative}.step:before{background-color:hsl(var(--secondary)/1);color:hsl(var(--secondary-foreground)/1);content:counter(step);counter-increment:step;border-radius:9999px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;line-height:1.25rem;display:flex;position:absolute;left:-1rem}.prose-no-margin>:first-child{margin-top:0}.prose-no-margin>:last-child{margin-bottom:0}.placeholder\:text-muted-foreground::-ms-input-placeholder{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.first\:mt-0:first-child{margin-top:0}.first\:pl-0:first-child{padding-left:0}.first\:pt-0:first-child{padding-top:0}.last\:pr-0:last-child{padding-right:0}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent)/.5)}.hover\:bg-muted\/80:hover{background-color:hsl(var(--muted)/.8)}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.hover\:text-accent-foreground\/80:hover{color:hsl(var(--accent-foreground)/.8)}.hover\:text-foreground:hover{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity))}.focus\:bg-accent:focus{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.focus\:text-accent-foreground:focus{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid transparent}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid transparent}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.aria-selected\:bg-accent[aria-selected=true]{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.aria-selected\:text-accent-foreground[aria-selected=true]{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{opacity:.5;height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:.2s ease-out accordion-up}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height)}to{opacity:0;height:0}}.data-\[state\=closed\]\:animate-collapsible-up[data-state=closed]{animation:.15s ease-out collapsible-up}@keyframes dialog-out{0%{transform:scale(1)translate(-50%)}to{transform:scale(.95)translateY(-50%,0);opacity:0}}.data-\[state\=closed\]\:animate-dialog-out[data-state=closed]{animation:.3s cubic-bezier(.32,.72,0,1) dialog-out}@keyframes fade-out{to{opacity:0}}.data-\[state\=closed\]\:animate-fade-out[data-state=closed]{animation:.3s fade-out}@keyframes popover-out{0%{opacity:1;transform:matrix(1,0,0,1,0,0)}to{opacity:0;transform:matrix(.95,0,0,.95,0,-9.5)}}.data-\[state\=closed\]\:animate-popover-out[data-state=closed]{animation:.15s popover-out}.data-\[state\=hidden\]\:animate-fade-out[data-state=hidden]{animation:.3s fade-out}@keyframes accordion-down{0%{opacity:.5;height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:.2s ease-out accordion-down}@keyframes collapsible-down{0%{opacity:0;height:0}to{height:var(--radix-collapsible-content-height)}}.data-\[state\=open\]\:animate-collapsible-down[data-state=open]{animation:.15s ease-out collapsible-down}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)translate(-50%)}to{transform:scale(1)translate(-50%)}}.data-\[state\=open\]\:animate-dialog-in[data-state=open]{animation:.2s cubic-bezier(.32,.72,0,1) dialog-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.data-\[state\=open\]\:animate-fade-in[data-state=open]{animation:.3s fade-in}@keyframes popover-in{0%{opacity:0;transform:matrix(.95,0,0,.95,0,-9.5)}to{opacity:1;transform:matrix(1,0,0,1,0,0)}}.data-\[state\=open\]\:animate-popover-in[data-state=open]{animation:.15s popover-in}.data-\[state\=active\]\:border-primary[data-state=active]{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-primary[data-active=true]{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}.data-\[state\=active\]\:text-primary[data-state=active]{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.group\/accordion[data-state=open] .group-data-\[state\=open\]\/accordion\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}:is(.dark .dark\:bg-secondary){--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:text-green-400){--tw-text-opacity:1;color:rgba(74,222,128,var(--tw-text-opacity))}:is(.dark .dark\:text-muted-foreground){--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity))}:is(.dark .dark\:text-red-400){--tw-text-opacity:1;color:rgba(248,113,113,var(--tw-text-opacity))}:is(.dark .dark\:text-secondary-foreground){--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-400){--tw-text-opacity:1;color:rgba(250,204,21,var(--tw-text-opacity))}@media not all and (min-width:1280px){.max-xl\:hidden{display:none}}@media not all and (min-width:1024px){.max-lg\:hidden{display:none}}@media not all and (min-width:768px){.max-md\:fixed{position:fixed}.max-md\:inset-0{top:0;bottom:0;left:0;right:0}.max-md\:z-40{z-index:40}.max-md\:hidden{display:none}.max-md\:bg-background\/80{background-color:hsl(var(--background)/.8)}.max-md\:px-4{padding-left:1rem;padding-right:1rem}.max-md\:pt-16{padding-top:4rem}.max-md\:backdrop-blur-md{--tw-backdrop-blur:blur(12px);-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);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)}.max-md\:data-\[open\=false\]\:hidden[data-open=false]{display:none}}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:sticky{position:-webkit-sticky;position:sticky}.md\:top-16{top:4rem}.md\:hidden{display:none}.md\:h-body{height:calc(100vh - 4rem);height:calc(100dvh - 4rem)}.md\:w-\[240px\]{width:240px}.md\:gap-2{gap:.5rem}.md\:pr-3{padding-right:.75rem}.md\:pt-10{padding-top:2.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:hidden{display:none}}@media (min-width:1280px){.xl\:hidden{display:none}.xl\:w-\[260px\]{width:260px}.xl\:w-\[40\%\]{width:40%}.xl\:min-w-\[400px\]{min-width:400px}.xl\:flex-row{flex-direction:row}.xl\:gap-12{gap:3rem}}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&_\[cmdk-group-heading\]\]\:px-3 [cmdk-group-heading]{padding-left:.75rem;padding-right:.75rem}.\[\&_\[cmdk-group-heading\]\]\:py-2 [cmdk-group-heading]{padding-top:.5rem;padding-bottom:.5rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_svg\]\:size-3\.5 svg{width:.875rem;height:.875rem}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:size-5 svg{width:1.25rem;height:1.25rem}
@@ -3,7 +3,7 @@ import { ReactNode } from 'react';
3
3
 
4
4
  interface TreeContextType {
5
5
  tree: PageTree.Root;
6
- list: PageTree.Item[];
6
+ navigation: PageTree.Item[];
7
7
  root: PageTree.Root | PageTree.Folder;
8
8
  }
9
9
  declare function TreeContextProvider({ children, tree, }: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-ui",
3
- "version": "9.1.0",
3
+ "version": "10.0.1",
4
4
  "description": "The framework for building a documentation website in Next.js",
5
5
  "keywords": [
6
6
  "NextJs",
@@ -82,38 +82,38 @@
82
82
  "dependencies": {
83
83
  "@radix-ui/react-accordion": "^1.1.2",
84
84
  "@radix-ui/react-collapsible": "^1.0.3",
85
- "@radix-ui/react-dialog": "^1.0.4",
85
+ "@radix-ui/react-dialog": "^1.0.5",
86
86
  "@radix-ui/react-hover-card": "^1.0.7",
87
- "@radix-ui/react-popover": "^1.0.6",
88
- "@radix-ui/react-scroll-area": "^1.0.4",
87
+ "@radix-ui/react-popover": "^1.0.7",
88
+ "@radix-ui/react-scroll-area": "^1.0.5",
89
89
  "@radix-ui/react-select": "^2.0.0",
90
90
  "@radix-ui/react-tabs": "^1.0.4",
91
91
  "@tailwindcss/typography": "^0.5.10",
92
92
  "class-variance-authority": "^0.7.0",
93
- "clsx": "^2.0.0",
94
- "cmdk": "^0.2.0",
93
+ "clsx": "^2.1.0",
94
+ "cmdk": "^0.2.1",
95
95
  "lucide-react": "^0.298.0",
96
96
  "next-themes": "^0.2.1",
97
- "react-medium-image-zoom": "^5.1.8",
98
- "tailwind-merge": "^2.0.0",
97
+ "react-medium-image-zoom": "^5.1.10",
98
+ "tailwind-merge": "^2.2.1",
99
99
  "tailwindcss": "^3.4.1",
100
- "fumadocs-core": "9.1.0"
100
+ "fumadocs-core": "10.0.1"
101
101
  },
102
102
  "devDependencies": {
103
- "@algolia/client-search": "^4.20.0",
104
- "@next/eslint-plugin-next": "^14.0.0",
105
- "@types/react": "18.2.0",
106
- "@types/react-dom": "18.2.1",
107
- "algoliasearch": "^4.20.0",
108
- "next": "14.1.0",
109
- "postcss": "8.4.35",
103
+ "@algolia/client-search": "^4.22.1",
104
+ "@next/eslint-plugin-next": "^14.1.2",
105
+ "@types/react": "^18.2.0",
106
+ "@types/react-dom": "^18.2.1",
107
+ "algoliasearch": "^4.22.1",
108
+ "next": "^14.1.2",
109
+ "postcss": "^8.4.35",
110
110
  "postcss-cli": "^11.0.0",
111
111
  "postcss-lightningcss": "^1.0.0",
112
112
  "eslint-config-custom": "0.0.0",
113
113
  "tsconfig": "0.0.0"
114
114
  },
115
115
  "peerDependencies": {
116
- "next": ">= 13",
116
+ "next": ">= 14.1.0",
117
117
  "react": ">= 18",
118
118
  "react-dom": ">= 18"
119
119
  },
@@ -1,14 +0,0 @@
1
- import { Options } from 'fumadocs-core/typescript';
2
-
3
- /**
4
- * **Server Component Only**
5
- *
6
- * Display properties in an exported interface via Type Table
7
- */
8
- declare function AutoTypeTable({ path, name, options, }: {
9
- path: string;
10
- name: string;
11
- options?: Options['options'];
12
- }): JSX.Element;
13
-
14
- export { AutoTypeTable };
@@ -1,32 +0,0 @@
1
- import { TypeTable } from "./type-table.js"
2
- import "../chunk-6C3VEZWH.js";
3
-
4
- // src/components/auto-type-table.tsx
5
- import { generateDocumentation } from "fumadocs-core/typescript";
6
- import "server-only";
7
- import { jsx } from "react/jsx-runtime";
8
- function AutoTypeTable({
9
- path,
10
- name,
11
- options
12
- }) {
13
- const output = generateDocumentation({ file: path, name, options });
14
- return /* @__PURE__ */ jsx(
15
- TypeTable,
16
- {
17
- type: Object.fromEntries(
18
- output.map((entry) => [
19
- entry.name,
20
- {
21
- type: entry.type,
22
- description: entry.description,
23
- default: entry.default
24
- }
25
- ])
26
- )
27
- }
28
- );
29
- }
30
- export {
31
- AutoTypeTable
32
- };