fumadocs-ui 8.3.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,9 @@
1
- import * as react from 'react';
1
+ import * as React from 'react';
2
2
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
3
 
4
- declare const Accordions: react.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & react.RefAttributes<HTMLDivElement>>;
5
- declare const MultipleAccordions: react.ForwardRefExoticComponent<AccordionPrimitive.AccordionMultipleProps & react.RefAttributes<HTMLDivElement>>;
6
- declare const SingleAccordions: react.ForwardRefExoticComponent<AccordionPrimitive.AccordionSingleProps & react.RefAttributes<HTMLDivElement>>;
7
- declare const Accordion: react.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionItemProps & react.RefAttributes<HTMLDivElement>, "ref">, "value"> & {
4
+ declare const Accordions: React.ForwardRefExoticComponent<(Omit<AccordionPrimitive.AccordionSingleProps, "value" | "onValueChange"> | Omit<AccordionPrimitive.AccordionMultipleProps, "value" | "onValueChange">) & React.RefAttributes<HTMLDivElement>>;
5
+ declare const Accordion: React.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref">, "value"> & {
8
6
  title: string;
9
- } & react.RefAttributes<HTMLDivElement>>;
7
+ } & React.RefAttributes<HTMLDivElement>>;
10
8
 
11
- export { Accordion, Accordions, MultipleAccordions, SingleAccordions };
9
+ export { Accordion, Accordions };
@@ -18,66 +18,38 @@ import {
18
18
  useState,
19
19
  useEffect
20
20
  } from "react";
21
- import { cva } from "class-variance-authority";
22
21
  import { jsx, jsxs } from "react/jsx-runtime";
23
- var variants = cva(
24
- "divide-y divide-border overflow-hidden rounded-lg border bg-card"
25
- );
26
- var Accordions = forwardRef((props, ref) => {
27
- if (props.type === "multiple") {
28
- return /* @__PURE__ */ jsx(MultipleAccordions, { ref, ...props });
29
- }
30
- return /* @__PURE__ */ jsx(
31
- SingleAccordions,
32
- {
33
- ref,
34
- ...props,
35
- type: "single"
36
- }
37
- );
38
- });
39
- Accordions.displayName = "Accordions";
40
- var MultipleAccordions = forwardRef(({ className, defaultValue, ...props }, ref) => {
41
- const [defValue, setDefValue] = useState(defaultValue);
42
- const value = props.value ?? defValue;
43
- const setValue = props.onValueChange?.bind(props) ?? setDefValue;
44
- useEffect(() => {
45
- if (window.location.hash.length > 0)
46
- setValue([window.location.hash.substring(1)]);
47
- }, [setValue]);
48
- return /* @__PURE__ */ jsx(
49
- AccordionPrimitive.Root,
50
- {
51
- ref,
52
- value,
53
- onValueChange: setValue,
54
- className: twMerge(variants(), className),
55
- ...props
56
- }
22
+ var Accordions = forwardRef(({ type = "single", className, defaultValue, ...props }, ref) => {
23
+ const [value, setValue] = useState(
24
+ type === "single" ? defaultValue ?? "" : defaultValue ?? []
57
25
  );
58
- });
59
- MultipleAccordions.displayName = "MultipleAccordions";
60
- var SingleAccordions = forwardRef(({ className, defaultValue, ...props }, ref) => {
61
- const [defValue, setDefValue] = useState(defaultValue);
62
- const value = props.value ?? defValue;
63
- const setValue = props.onValueChange?.bind(props) ?? setDefValue;
64
26
  useEffect(() => {
65
- if (window.location.hash.length > 0)
66
- setValue(window.location.hash.substring(1));
67
- }, [setValue]);
68
- return /* @__PURE__ */ jsx(
69
- AccordionPrimitive.Root,
70
- {
71
- ref,
72
- value,
73
- onValueChange: setValue,
74
- collapsible: true,
75
- className: twMerge(variants(), className),
76
- ...props
77
- }
27
+ const id = window.location.hash.substring(1);
28
+ if (id.length > 0)
29
+ setValue((prev) => {
30
+ return type === "single" ? id : [id, ...Array.isArray(prev) ? prev : []];
31
+ });
32
+ }, [type]);
33
+ return (
34
+ // @ts-expect-error -- Multiple types
35
+ /* @__PURE__ */ jsx(
36
+ AccordionPrimitive.Root,
37
+ {
38
+ type,
39
+ ref,
40
+ value,
41
+ onValueChange: setValue,
42
+ collapsible: true,
43
+ className: twMerge(
44
+ "divide-y divide-border overflow-hidden rounded-lg border bg-card",
45
+ className
46
+ ),
47
+ ...props
48
+ }
49
+ )
78
50
  );
79
51
  });
80
- SingleAccordions.displayName = "SingleAccordions";
52
+ Accordions.displayName = "Accordions";
81
53
  var Accordion = forwardRef(({ title, className, id, children, ...props }, ref) => {
82
54
  return /* @__PURE__ */ jsxs(
83
55
  AccordionPrimitive.Item,
@@ -129,7 +101,5 @@ function CopyButton({ id }) {
129
101
  Accordion.displayName = "Accordion";
130
102
  export {
131
103
  Accordion,
132
- Accordions,
133
- MultipleAccordions,
134
- SingleAccordions
104
+ Accordions
135
105
  };
@@ -1,13 +1,13 @@
1
- import * as react from 'react';
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" | "type" | "icon"> & {
4
+ declare const Callout: React.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "title" | "icon" | "type"> & {
5
5
  title?: ReactNode;
6
6
  /**
7
7
  * @defaultValue info
8
8
  */
9
9
  type?: "info" | "warn" | "error" | undefined;
10
10
  icon?: ReactNode;
11
- } & react.RefAttributes<HTMLDivElement>>;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
12
 
13
13
  export { Callout };
@@ -1,4 +1,4 @@
1
- import * as react from 'react';
1
+ import * as React from 'react';
2
2
  import { HTMLAttributes, ReactNode } from 'react';
3
3
 
4
4
  type CodeBlockProps = HTMLAttributes<HTMLElement> & {
@@ -8,13 +8,13 @@ type CodeBlockProps = HTMLAttributes<HTMLElement> & {
8
8
  icon?: ReactNode;
9
9
  allowCopy?: boolean;
10
10
  };
11
- declare const Pre: react.ForwardRefExoticComponent<HTMLAttributes<HTMLPreElement> & react.RefAttributes<HTMLPreElement>>;
12
- declare const CodeBlock: react.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
11
+ declare const Pre: React.ForwardRefExoticComponent<HTMLAttributes<HTMLPreElement> & React.RefAttributes<HTMLPreElement>>;
12
+ declare const CodeBlock: React.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & {
13
13
  /**
14
14
  * Icon of code block
15
15
  */
16
16
  icon?: ReactNode;
17
17
  allowCopy?: boolean | undefined;
18
- } & react.RefAttributes<HTMLElement>>;
18
+ } & React.RefAttributes<HTMLElement>>;
19
19
 
20
20
  export { CodeBlock, type CodeBlockProps, Pre };
@@ -14,7 +14,7 @@ interface FolderProps extends HTMLAttributes<HTMLDivElement> {
14
14
  */
15
15
  defaultOpen?: boolean;
16
16
  }
17
- declare function File(props: FileProps): JSX.Element;
17
+ declare function File({ name, icon, className, ...rest }: FileProps): JSX.Element;
18
18
  declare function Folder({ name, defaultOpen, ...props }: FolderProps): JSX.Element;
19
19
 
20
20
  export { File, type FileProps, Files, Folder, type FolderProps };
@@ -30,14 +30,15 @@ function Files({
30
30
  }
31
31
  );
32
32
  }
33
- function File(props) {
34
- if ("children" in props) {
35
- return /* @__PURE__ */ jsx(Folder, { ...props });
36
- }
37
- const { name, icon = /* @__PURE__ */ jsx(FileIcon, {}), className, ...rest } = props;
33
+ function File({
34
+ name,
35
+ icon = /* @__PURE__ */ jsx(FileIcon, {}),
36
+ className,
37
+ ...rest
38
+ }) {
38
39
  return /* @__PURE__ */ jsxs("div", { className: twMerge(item({ className })), ...rest, children: [
39
40
  icon,
40
- name ?? props.title
41
+ name
41
42
  ] });
42
43
  }
43
44
  function Folder({
@@ -49,7 +50,7 @@ function Folder({
49
50
  return /* @__PURE__ */ jsxs(Collapsible, { open, onOpenChange: setOpen, ...props, children: [
50
51
  /* @__PURE__ */ jsxs(CollapsibleTrigger, { className: twMerge(item({ className: "w-full" })), children: [
51
52
  open ? /* @__PURE__ */ jsx(FolderOpenIcon, {}) : /* @__PURE__ */ jsx(FolderIcon, {}),
52
- name ?? props.title
53
+ name
53
54
  ] }),
54
55
  /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", { className: "ml-2 flex flex-col border-l pl-2", children: props.children }) })
55
56
  ] });
@@ -1,11 +1,9 @@
1
1
  import { TOCItemType } from 'fumadocs-core/server';
2
- import { ReactNode } from 'react';
3
2
 
4
3
  interface InlineTocProps {
5
4
  items: TOCItemType[];
6
5
  defaultOpen?: boolean;
7
- children?: ReactNode;
8
6
  }
9
- declare function InlineTOC({ items, defaultOpen, children, }: InlineTocProps): JSX.Element;
7
+ declare function InlineTOC({ items, defaultOpen }: InlineTocProps): JSX.Element;
10
8
 
11
9
  export { InlineTOC, type InlineTocProps };
@@ -10,29 +10,18 @@ import "../chunk-6C3VEZWH.js";
10
10
  // src/components/inline-toc.tsx
11
11
  import { ChevronDown } from "lucide-react";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
- function InlineTOC({
14
- items,
15
- defaultOpen,
16
- children
17
- }) {
13
+ function InlineTOC({ items, defaultOpen }) {
18
14
  return /* @__PURE__ */ jsxs(
19
15
  Collapsible,
20
16
  {
21
17
  defaultOpen,
22
- className: "not-prose rounded-lg border bg-card p-4 text-card-foreground",
18
+ className: "not-prose rounded-lg border bg-card text-card-foreground",
23
19
  children: [
24
- /* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: children ?? /* @__PURE__ */ jsxs(
25
- "button",
26
- {
27
- type: "button",
28
- className: "inline-flex w-full items-center justify-between font-medium [&[data-state=open]>svg]:rotate-180",
29
- children: [
30
- "Table of Contents",
31
- /* @__PURE__ */ jsx(ChevronDown, { className: "size-4 transition-transform duration-200" })
32
- ]
33
- }
34
- ) }),
35
- /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", { className: "mt-2 flex flex-col text-sm text-muted-foreground", children: items.map((item) => /* @__PURE__ */ jsx(
20
+ /* @__PURE__ */ jsxs(CollapsibleTrigger, { className: "inline-flex w-full items-center justify-between p-4 font-medium [&[data-state=open]>svg]:rotate-180", children: [
21
+ "Table of Contents",
22
+ /* @__PURE__ */ jsx(ChevronDown, { className: "size-4 transition-transform duration-200" })
23
+ ] }),
24
+ /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", { className: "flex flex-col p-4 pt-0 text-sm text-muted-foreground", children: items.map((item) => /* @__PURE__ */ jsx(
36
25
  "a",
37
26
  {
38
27
  href: item.url,
@@ -1,12 +1,12 @@
1
1
  import * as TabsPrimitive from '@radix-ui/react-tabs';
2
2
  import { TabsContentProps } from '@radix-ui/react-tabs';
3
- import * as react from 'react';
3
+ import * as React from 'react';
4
4
  import { ReactNode } from 'react';
5
5
 
6
- declare const Tabs$1: react.ForwardRefExoticComponent<TabsPrimitive.TabsProps & react.RefAttributes<HTMLDivElement>>;
7
- declare const TabsList: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
8
- declare const TabsTrigger: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
9
- declare const TabsContent: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
6
+ declare const Tabs$1: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
7
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
9
+ declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
10
 
11
11
  declare const tabs_TabsContent: typeof TabsContent;
12
12
  declare const tabs_TabsList: typeof TabsList;
@@ -1,5 +1,5 @@
1
1
  import { PageTree } from 'fumadocs-core/server';
2
- import { ReactNode, HTMLAttributes } from 'react';
2
+ import { ReactNode, FC, HTMLAttributes } from 'react';
3
3
 
4
4
  interface NavLinkProps {
5
5
  icon: ReactNode;
@@ -36,10 +36,23 @@ interface SidebarProps {
36
36
  * @defaultValue 1
37
37
  */
38
38
  defaultOpenLevel?: number;
39
+ components?: Partial<Components>;
39
40
  banner?: ReactNode;
40
41
  footer?: ReactNode;
41
42
  }
42
- declare function Sidebar({ banner, footer, items, defaultOpenLevel, }: SidebarProps): JSX.Element;
43
+ interface Components {
44
+ Item: FC<{
45
+ item: PageTree.Item;
46
+ }>;
47
+ Folder: FC<{
48
+ item: PageTree.Folder;
49
+ level: number;
50
+ }>;
51
+ Separator: FC<{
52
+ item: PageTree.Separator;
53
+ }>;
54
+ }
55
+ declare function Sidebar({ banner, footer, components, items, defaultOpenLevel, }: SidebarProps): JSX.Element;
43
56
 
44
57
  interface LinkItem {
45
58
  url: string;
@@ -1,4 +1,4 @@
1
1
  export { T as TreeContextProvider } from './tree-Zwtp9xPv.mjs';
2
- export { N as Nav, S as Sidebar } from './layout-YB7EFpgW.mjs';
2
+ export { N as Nav, S as Sidebar } from './layout-W7dJ6OHQ.mjs';
3
3
  import 'fumadocs-core/server';
4
4
  import 'react';
@@ -66,8 +66,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
66
66
  var buttonVariants2 = cva("size-7 rounded-full p-1.5 text-muted-foreground", {
67
67
  variants: {
68
68
  dark: {
69
- true: "dark:bg-accent dark:text-accent-foreground",
70
- false: "bg-accent text-accent-foreground dark:bg-transparent dark:text-muted-foreground"
69
+ true: "dark:bg-secondary dark:text-secondary-foreground",
70
+ false: "bg-secondary text-secondary-foreground dark:bg-transparent dark:text-muted-foreground"
71
71
  }
72
72
  }
73
73
  });
@@ -303,17 +303,31 @@ var itemVariants = cva3(
303
303
  }
304
304
  }
305
305
  );
306
+ var defaultComponents = {
307
+ Folder: FolderNode,
308
+ Separator: SeparatorNode,
309
+ Item: ({ item }) => /* @__PURE__ */ jsx3(BaseItem, { item: { text: item.name, url: item.url, icon: item.icon } })
310
+ };
306
311
  var SidebarContext = createContext({
307
- defaultOpenLevel: 1
312
+ defaultOpenLevel: 1,
313
+ components: defaultComponents
308
314
  });
309
315
  function Sidebar({
310
316
  banner,
311
317
  footer,
318
+ components,
312
319
  items = [],
313
320
  defaultOpenLevel = 1
314
321
  }) {
315
322
  const [open] = useSidebarCollapse();
316
323
  const { root } = useTreeContext();
324
+ const context = useMemo(
325
+ () => ({
326
+ defaultOpenLevel,
327
+ components: { ...defaultComponents, ...components }
328
+ }),
329
+ [components, defaultOpenLevel]
330
+ );
317
331
  return /* @__PURE__ */ jsx3(
318
332
  Base.SidebarList,
319
333
  {
@@ -323,10 +337,10 @@ function Sidebar({
323
337
  !open ? "md:hidden" : "md:sticky md:top-16 md:h-body md:w-[240px] md:text-sm xl:w-[260px]",
324
338
  "max-md:fixed max-md:inset-0 max-md:z-40 max-md:bg-background/80 max-md:pt-16 max-md:backdrop-blur-md max-md:data-[open=false]:hidden"
325
339
  ),
326
- children: /* @__PURE__ */ jsxs3(SidebarContext.Provider, { value: { defaultOpenLevel }, children: [
340
+ children: /* @__PURE__ */ jsxs3(SidebarContext.Provider, { value: context, children: [
327
341
  /* @__PURE__ */ jsx3(ScrollArea, { className: "flex-1", children: /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-8 pb-10 pt-4 max-md:px-4 md:pr-3 md:pt-10", children: [
328
342
  banner,
329
- /* @__PURE__ */ jsx3("div", { className: "lg:hidden", children: items.map((item) => /* @__PURE__ */ jsx3(BaseItem, { item, nested: true }, item.url)) }),
343
+ items.length > 0 && /* @__PURE__ */ jsx3("div", { className: "lg:hidden", children: items.map((item) => /* @__PURE__ */ jsx3(BaseItem, { item, nested: true }, item.url)) }),
330
344
  /* @__PURE__ */ jsx3(NodeList, { items: root.children })
331
345
  ] }) }),
332
346
  /* @__PURE__ */ jsxs3(
@@ -347,21 +361,16 @@ function Sidebar({
347
361
  );
348
362
  }
349
363
  function NodeList({ items, level = 0, ...props }) {
364
+ const { components } = useContext(SidebarContext);
350
365
  return /* @__PURE__ */ jsx3("div", { ...props, children: items.map((item) => {
351
366
  const id = `${item.type}_${item.name}`;
352
367
  switch (item.type) {
353
368
  case "separator":
354
- return /* @__PURE__ */ jsx3(SeparatorNode, { item }, id);
369
+ return /* @__PURE__ */ jsx3(components.Separator, { item }, id);
355
370
  case "folder":
356
- return /* @__PURE__ */ jsx3(Folder, { item, level: level + 1 }, id);
371
+ return /* @__PURE__ */ jsx3(components.Folder, { item, level: level + 1 }, id);
357
372
  default:
358
- return /* @__PURE__ */ jsx3(
359
- BaseItem,
360
- {
361
- item: { text: item.name, url: item.url, icon: item.icon }
362
- },
363
- item.url
364
- );
373
+ return /* @__PURE__ */ jsx3(components.Item, { item }, item.url);
365
374
  }
366
375
  }) });
367
376
  }
@@ -384,8 +393,8 @@ function BaseItem({
384
393
  }
385
394
  );
386
395
  }
387
- function Folder({
388
- item: { name, children, index, icon },
396
+ function FolderNode({
397
+ item: { name, children, index, icon, defaultOpen = false },
389
398
  level
390
399
  }) {
391
400
  const { defaultOpenLevel } = useContext(SidebarContext);
@@ -396,7 +405,7 @@ function Folder({
396
405
  [children, pathname]
397
406
  );
398
407
  const [extend, setExtend] = useState2(
399
- active || childActive || defaultOpenLevel >= level
408
+ active || childActive || defaultOpenLevel >= level || defaultOpen
400
409
  );
401
410
  useEffect2(() => {
402
411
  if (active || childActive)
package/dist/layout.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import 'fumadocs-core/server';
2
2
  import 'react';
3
- export { B as BaseLayoutProps, b as DocsLayout, D as DocsLayoutProps, a as Layout, L as LinkItem } from './layout-YB7EFpgW.mjs';
3
+ export { B as BaseLayoutProps, b as DocsLayout, D as DocsLayoutProps, a as Layout, L as LinkItem } from './layout-W7dJ6OHQ.mjs';
package/dist/page.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react from 'react';
1
+ import * as React from 'react';
2
2
  import { ReactNode, HTMLAttributes } from 'react';
3
3
  import { TableOfContents, TOCItemType } from 'fumadocs-core/server';
4
4
  import { FooterProps } from './page.client.mjs';
@@ -44,6 +44,6 @@ interface TOCProps {
44
44
  /**
45
45
  * Add typography styles
46
46
  */
47
- declare const DocsBody: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
47
+ declare const DocsBody: React.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
48
48
 
49
49
  export { DocsBody, DocsPage, type DocsPageProps };
@@ -1,4 +1,4 @@
1
- import * as react from 'react';
1
+ 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';
@@ -32,7 +32,7 @@ interface SearchContextType {
32
32
  declare function useSearchContext(): SearchContextType;
33
33
 
34
34
  type SidebarCollapseContext = [open: boolean, setOpen: (v: boolean) => void];
35
- declare const SidebarCollapseContext: react.Context<SidebarCollapseContext | undefined>;
35
+ declare const SidebarCollapseContext: React.Context<SidebarCollapseContext | undefined>;
36
36
  declare function useSidebarCollapse(): SidebarCollapseContext;
37
37
 
38
38
  interface RootProviderProps {
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-accent{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}.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-accent){--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:text-accent-foreground){--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity))}: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-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}.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}
@@ -417,8 +417,6 @@ var docsUi = import_plugin.default.withOptions(
417
417
  },
418
418
  colors: {
419
419
  border: colorToCSS(prefix, "border"),
420
- // todo: remove in next major
421
- input: colorToCSS(prefix, "border"),
422
420
  ring: colorToCSS(prefix, "ring"),
423
421
  background: colorToCSS(prefix, "background"),
424
422
  foreground: colorToCSS(prefix, "foreground"),
@@ -1,8 +1,8 @@
1
- import * as react from 'react';
1
+ import * as React from 'react';
2
2
  import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
3
3
 
4
- declare const HoverCard: react.FC<HoverCardPrimitive.HoverCardProps>;
5
- declare const HoverCardTrigger: react.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & react.RefAttributes<HTMLAnchorElement>>;
6
- declare const HoverCardContent: react.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
4
+ declare const HoverCard: React.FC<HoverCardPrimitive.HoverCardProps>;
5
+ declare const HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
6
+ declare const HoverCardContent: React.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
7
 
8
8
  export { HoverCard as Popup, HoverCardContent as PopupContent, HoverCardTrigger as PopupTrigger };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-ui",
3
- "version": "8.3.0",
3
+ "version": "9.1.0",
4
4
  "description": "The framework for building a documentation website in Next.js",
5
5
  "keywords": [
6
6
  "NextJs",
@@ -97,7 +97,7 @@
97
97
  "react-medium-image-zoom": "^5.1.8",
98
98
  "tailwind-merge": "^2.0.0",
99
99
  "tailwindcss": "^3.4.1",
100
- "fumadocs-core": "8.3.0"
100
+ "fumadocs-core": "9.1.0"
101
101
  },
102
102
  "devDependencies": {
103
103
  "@algolia/client-search": "^4.20.0",