@moontra/moonui-pro 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +790 -0
- package/dist/index.mjs +758 -326
- package/package.json +2 -3
- package/scripts/postinstall.js +144 -66
- package/src/components/advanced-chart/index.tsx +3 -3
- package/src/components/advanced-forms/index.tsx +4 -9
- package/src/components/animated-button/index.tsx +4 -8
- package/src/components/calendar/index.tsx +2 -28
- package/src/components/color-picker/index.tsx +2 -4
- package/src/components/dashboard/index.tsx +3 -3
- package/src/components/data-table/index.tsx +5 -8
- package/src/components/enhanced/badge.tsx +191 -0
- package/src/components/enhanced/button.tsx +7 -5
- package/src/components/enhanced/card.tsx +11 -17
- package/src/components/enhanced/dialog.tsx +26 -28
- package/src/components/enhanced/index.ts +2 -1
- package/src/components/error-boundary/index.tsx +2 -4
- package/src/components/file-upload/index.tsx +3 -5
- package/src/components/floating-action-button/index.tsx +1 -4
- package/src/components/github-stars/index.tsx +4 -6
- package/src/components/health-check/index.tsx +5 -7
- package/src/components/hover-card-3d/index.tsx +3 -6
- package/src/components/kanban/index.tsx +4 -6
- package/src/components/lazy-component/index.tsx +4 -7
- package/src/components/magnetic-button/index.tsx +3 -6
- package/src/components/memory-efficient-data/index.tsx +6 -6
- package/src/components/optimized-image/index.tsx +4 -6
- package/src/components/performance-debugger/index.tsx +8 -10
- package/src/components/performance-monitor/index.tsx +37 -18
- package/src/components/pinch-zoom/index.tsx +2 -4
- package/src/components/rich-text-editor/index-old-backup.tsx +3 -9
- package/src/components/rich-text-editor/index.tsx +75 -10
- package/src/components/rich-text-editor/slash-commands-extension.ts +1 -1
- package/src/components/spotlight-card/index.tsx +1 -4
- package/src/components/swipeable-card/index.tsx +1 -1
- package/src/components/timeline/index.tsx +2 -2
- package/src/components/ui/color-picker.tsx +1 -1
- package/src/components/ui/index.ts +2 -0
- package/src/components/ui/progress.tsx +27 -0
- package/src/components/ui/skeleton.tsx +17 -0
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/virtual-list/index.tsx +3 -4
- package/src/hooks/use-chart.ts +2 -2
- package/src/index.ts +0 -3
- package/src/patterns/login-form/types.ts +6 -6
- package/src/use-pro-access.ts +2 -2
- package/src/utils/chart-helpers.ts +1 -1
- package/src/utils/license-guard.tsx +0 -177
- package/src/utils/package-guard.ts +0 -60
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React16 from 'react';
|
|
2
|
+
import React16__default, { useState, useRef, useCallback, forwardRef, createContext, useContext, useMemo, useEffect, useDebugValue, Component, useLayoutEffect } from 'react';
|
|
3
3
|
import { motion, AnimatePresence, useMotionValue, useSpring, useTransform, animate } from 'framer-motion';
|
|
4
4
|
import { Loader2, Lock, Sparkles, Plus, ChevronDown, ChevronUp, Check, X, ChevronRight, Circle, Minus, Calendar, ChevronLeft, Edit, Trash2, Clock, MapPin, User, MoreHorizontal, GripVertical, MessageCircle, Paperclip, Bold as Bold$1, Italic as Italic$1, Underline as Underline$1, Strikethrough, Code as Code$1, Type, Heading1, Heading2, Heading3, AlignLeft, AlignCenter, AlignRight, AlignJustify, List, ListOrdered, CheckSquare, Quote, Palette, Highlighter, Link2, Image as Image$1, Table as Table$1, Settings, Undo, Redo, Eye, RefreshCw, Wand2, Maximize, FileText, Languages, TrendingUp, TrendingDown, Download, Maximize2, Activity, Star, ExternalLink, BarChart3, Users, DollarSign, Copy, RotateCcw, Github, GitFork, Server, EyeOff, ZoomOut, ZoomIn, RotateCw, Zap, Monitor, Timer, AlertTriangle, Cpu, MemoryStick, HardDrive, Network, CheckCircle, CheckCircle2, AlertCircle, XCircle, ArrowDownRight, ArrowUpRight, Upload } from 'lucide-react';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
@@ -17,12 +17,13 @@ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
|
17
17
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
18
18
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
19
19
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
20
|
-
import { cn as cn$1
|
|
20
|
+
import { cn as cn$1 } from '@moontra/moonui';
|
|
21
21
|
import { ResponsiveContainer, ScatterChart, CartesianGrid, XAxis, YAxis, Tooltip as Tooltip$1, Legend, Scatter, PieChart, Pie, Cell, AreaChart, Area, ReferenceLine, Brush, BarChart, Bar, LineChart, Line, ReferenceArea } from 'recharts';
|
|
22
22
|
import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
|
|
23
23
|
import { useForm } from 'react-hook-form';
|
|
24
24
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
25
25
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
26
|
+
import { createSlot } from '@radix-ui/react-slot';
|
|
26
27
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
27
28
|
|
|
28
29
|
/**
|
|
@@ -1742,7 +1743,7 @@ function styleInject(css2, { insertAt } = {}) {
|
|
|
1742
1743
|
}
|
|
1743
1744
|
|
|
1744
1745
|
// src/styles/index.css
|
|
1745
|
-
styleInject('*,\n::before,\n::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n*,\n::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: #e5e7eb;\n}\n::before,\n::after {\n --tw-content: "";\n}\nhtml,\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--font-sans);\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n}\nbody {\n margin: 0;\n line-height: inherit;\n}\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nb,\nstrong {\n font-weight: bolder;\n}\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--font-mono);\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-size: 1em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\ninput:where([type="button"]),\ninput:where([type="reset"]),\ninput:where([type="submit"]) {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n}\n:-moz-focusring {\n outline: auto;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\nprogress {\n vertical-align: baseline;\n}\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\nsummary {\n display: list-item;\n}\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nlegend {\n padding: 0;\n}\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\ndialog {\n padding: 0;\n}\ntextarea {\n resize: vertical;\n}\ninput::-moz-placeholder,\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nbutton,\n[role=button] {\n cursor: pointer;\n}\n:disabled {\n cursor: default;\n}\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n[hidden]:where(:not([hidden="until-found"])) {\n display: none;\n}\n:root {\n --bg-base: var(--background);\n --bg-subtle: var(--gray-50);\n --bg-muted: var(--gray-100);\n --bg-emphasis: var(--gray-200);\n --bg-inverse: var(--foreground);\n --surface-base: var(--background);\n --surface-overlay: var(--gray-50);\n --surface-raised: var(--background);\n --surface-sunken: var(--gray-100);\n --text-primary: var(--foreground);\n --text-secondary: var(--gray-600);\n --text-tertiary: var(--gray-500);\n --text-disabled: var(--gray-400);\n --text-inverse: var(--background);\n --text-link: var(--primary);\n --text-link-hover: var(--primary-hover);\n --brand-primary: var(--primary);\n --brand-primary-hover: var(--primary-hover);\n --brand-primary-active: var(--primary-active);\n --brand-secondary: var(--secondary);\n --state-hover: var(--gray-100);\n --state-active: var(--gray-200);\n --state-selected: var(--primary);\n --state-disabled: var(--gray-300);\n --state-focus: var(--primary);\n --feedback-success: var(--success);\n --feedback-success-light: 142 71% 95%;\n --feedback-success-dark: 142 71% 35%;\n --feedback-warning: var(--warning);\n --feedback-warning-light: 38 92% 95%;\n --feedback-warning-dark: 38 92% 40%;\n --feedback-error: var(--error);\n --feedback-error-light: 0 84% 95%;\n --feedback-error-dark: 0 84% 50%;\n --feedback-info: 217 91% 60%;\n --feedback-info-light: 217 91% 95%;\n --feedback-info-dark: 217 91% 50%;\n --border-default: var(--border);\n --border-subtle: var(--gray-200);\n --border-strong: var(--gray-400);\n --border-interactive: var(--primary);\n --border-error: var(--error);\n --border-success: var(--success);\n --border-warning: var(--warning);\n --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --shadow-primary: 0 4px 14px 0 hsl(var(--primary) / 0.3);\n --shadow-success: 0 4px 14px 0 hsl(var(--success) / 0.3);\n --shadow-error: 0 4px 14px 0 hsl(var(--error) / 0.3);\n --shadow-warning: 0 4px 14px 0 hsl(var(--warning) / 0.3);\n --shadow-inner-xs: inset 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow-inner-sm: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --shadow-inner-md: inset 0 4px 6px -1px rgb(0 0 0 / 0.1);\n --ease-linear: linear;\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --ease-back-in: cubic-bezier(0.6, -0.28, 0.735, 0.045);\n --ease-back-out: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n --ease-back-in-out: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --duration-instant: 0ms;\n --duration-fast: 150ms;\n --duration-normal: 250ms;\n --duration-slow: 350ms;\n --duration-slower: 500ms;\n --duration-slowest: 750ms;\n --space-0: 0;\n --space-px: 1px;\n --space-0\\.5: 0.125rem;\n --space-1: 0.25rem;\n --space-1\\.5: 0.375rem;\n --space-2: 0.5rem;\n --space-2\\.5: 0.625rem;\n --space-3: 0.75rem;\n --space-3\\.5: 0.875rem;\n --space-4: 1rem;\n --space-5: 1.25rem;\n --space-6: 1.5rem;\n --space-7: 1.75rem;\n --space-8: 2rem;\n --space-9: 2.25rem;\n --space-10: 2.5rem;\n --space-11: 2.75rem;\n --space-12: 3rem;\n --space-14: 3.5rem;\n --space-16: 4rem;\n --space-20: 5rem;\n --space-24: 6rem;\n --space-28: 7rem;\n --space-32: 8rem;\n --space-36: 9rem;\n --space-40: 10rem;\n --space-44: 11rem;\n --space-48: 12rem;\n --space-52: 13rem;\n --space-56: 14rem;\n --space-60: 15rem;\n --space-64: 16rem;\n --space-72: 18rem;\n --space-80: 20rem;\n --space-96: 24rem;\n --text-2xs: 0.625rem;\n --text-xs: 0.75rem;\n --text-sm: 0.875rem;\n --text-base: 1rem;\n --text-lg: 1.125rem;\n --text-xl: 1.25rem;\n --text-2xl: 1.5rem;\n --text-3xl: 1.875rem;\n --text-4xl: 2.25rem;\n --text-5xl: 3rem;\n --text-6xl: 3.75rem;\n --text-7xl: 4.5rem;\n --text-8xl: 6rem;\n --text-9xl: 8rem;\n --leading-none: 1;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --leading-loose: 2;\n --tracking-tighter: -0.05em;\n --tracking-tight: -0.025em;\n --tracking-normal: 0;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --font-thin: 100;\n --font-extralight: 200;\n --font-light: 300;\n --font-normal: 400;\n --font-medium: 500;\n --font-semibold: 600;\n --font-bold: 700;\n --font-extrabold: 800;\n --font-black: 900;\n --radius-none: 0;\n --radius-sm: 0.125rem;\n --radius-base: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --radius-full: 9999px;\n --z-0: 0;\n --z-10: 10;\n --z-20: 20;\n --z-30: 30;\n --z-40: 40;\n --z-50: 50;\n --z-dropdown: 1000;\n --z-sticky: 1020;\n --z-fixed: 1030;\n --z-modal-backdrop: 1040;\n --z-modal: 1050;\n --z-popover: 1060;\n --z-tooltip: 1070;\n --z-notification: 1080;\n --blur-none: 0;\n --blur-sm: 4px;\n --blur-base: 8px;\n --blur-md: 12px;\n --blur-lg: 16px;\n --blur-xl: 24px;\n --blur-2xl: 40px;\n --blur-3xl: 64px;\n}\n.dark {\n --bg-base: var(--background);\n --bg-subtle: var(--gray-800);\n --bg-muted: var(--gray-700);\n --bg-emphasis: var(--gray-600);\n --surface-overlay: var(--gray-800);\n --surface-raised: var(--gray-800);\n --surface-sunken: var(--background);\n --text-secondary: var(--gray-400);\n --text-tertiary: var(--gray-500);\n --text-disabled: var(--gray-600);\n --state-hover: var(--gray-700);\n --state-active: var(--gray-600);\n --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.3);\n --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.3);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.3);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.5);\n}\n.container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 1rem;\n padding-left: 1rem;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n padding-right: 2rem;\n padding-left: 2rem;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n padding-right: 4rem;\n padding-left: 4rem;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n padding-right: 5rem;\n padding-left: 5rem;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n padding-right: 6rem;\n padding-left: 6rem;\n }\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.collapse {\n visibility: collapse;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.bottom-2 {\n bottom: 0.5rem;\n}\n.bottom-4 {\n bottom: 1rem;\n}\n.bottom-\\[5\\%\\] {\n bottom: 5%;\n}\n.left-2 {\n left: 0.5rem;\n}\n.left-3 {\n left: 0.75rem;\n}\n.left-4 {\n left: 1rem;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-1 {\n right: 0.25rem;\n}\n.right-2 {\n right: 0.5rem;\n}\n.right-3 {\n right: 0.75rem;\n}\n.right-4 {\n right: 1rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-1 {\n top: 0.25rem;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-2 {\n top: 0.5rem;\n}\n.top-2\\.5 {\n top: 0.625rem;\n}\n.top-4 {\n top: 1rem;\n}\n.top-\\[5\\%\\] {\n top: 5%;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.top-auto {\n top: auto;\n}\n.-z-10 {\n z-index: -10;\n}\n.z-0 {\n z-index: 0;\n}\n.z-10 {\n z-index: 10;\n}\n.z-40 {\n z-index: 40;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[-1\\] {\n z-index: -1;\n}\n.z-\\[100\\] {\n z-index: 100;\n}\n.col-span-1 {\n grid-column: span 1 / span 1;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.col-span-3 {\n grid-column: span 3 / span 3;\n}\n.col-span-4 {\n grid-column: span 4 / span 4;\n}\n.-m-2 {\n margin: -0.5rem;\n}\n.-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.-mx-4 {\n margin-left: -1rem;\n margin-right: -1rem;\n}\n.mx-1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.-mb-4 {\n margin-bottom: -1rem;\n}\n.-mr-1 {\n margin-right: -0.25rem;\n}\n.-mt-4 {\n margin-top: -1rem;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-8 {\n margin-bottom: 2rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mr-1 {\n margin-right: 0.25rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mr-auto {\n margin-right: auto;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.\\!table {\n display: table !important;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.h-0 {\n height: 0px;\n}\n.h-1 {\n height: 0.25rem;\n}\n.h-1\\.5 {\n height: 0.375rem;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-12 {\n height: 3rem;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-16 {\n height: 4rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-20 {\n height: 5rem;\n}\n.h-24 {\n height: 6rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-32 {\n height: 8rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-48 {\n height: 12rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-96 {\n height: 24rem;\n}\n.h-\\[0\\.5px\\] {\n height: 0.5px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[2px\\] {\n height: 2px;\n}\n.h-\\[65\\%\\] {\n height: 65%;\n}\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.h-auto {\n height: auto;\n}\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n.h-full {\n height: 100%;\n}\n.h-px {\n height: 1px;\n}\n.max-h-32 {\n max-height: 8rem;\n}\n.max-h-96 {\n max-height: 24rem;\n}\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n.max-h-\\[95vh\\] {\n max-height: 95vh;\n}\n.max-h-full {\n max-height: 100%;\n}\n.max-h-screen {\n max-height: 100vh;\n}\n.min-h-32 {\n min-height: 8rem;\n}\n.min-h-\\[200px\\] {\n min-height: 200px;\n}\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n.w-0 {\n width: 0px;\n}\n.w-0\\.5 {\n width: 0.125rem;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-1\\/4 {\n width: 25%;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-11 {\n width: 2.75rem;\n}\n.w-12 {\n width: 3rem;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-16 {\n width: 4rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\/3 {\n width: 66.666667%;\n}\n.w-20 {\n width: 5rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-3\\/4 {\n width: 75%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-48 {\n width: 12rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-56 {\n width: 14rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-64 {\n width: 16rem;\n}\n.w-72 {\n width: 18rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-80 {\n width: 20rem;\n}\n.w-96 {\n width: 24rem;\n}\n.w-\\[0\\.5px\\] {\n width: 0.5px;\n}\n.w-\\[100px\\] {\n width: 100px;\n}\n.w-\\[1px\\] {\n width: 1px;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-\\[65\\%\\] {\n width: 65%;\n}\n.w-\\[70px\\] {\n width: 70px;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-px {\n width: 1px;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-32 {\n min-width: 8rem;\n}\n.min-w-\\[4px\\] {\n min-width: 4px;\n}\n.min-w-\\[70px\\] {\n min-width: 70px;\n}\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-4xl {\n max-width: 56rem;\n}\n.max-w-6xl {\n max-width: 72rem;\n}\n.max-w-\\[95vw\\] {\n max-width: 95vw;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.max-w-none {\n max-width: none;\n}\n.max-w-sm {\n max-width: 24rem;\n}\n.max-w-xs {\n max-width: 20rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.grow {\n flex-grow: 1;\n}\n.-translate-x-2 {\n --tw-translate-x: -0.5rem;\n 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));\n}\n.-translate-y-0 {\n --tw-translate-y: -0px;\n 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));\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n 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));\n}\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n 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));\n}\n.translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n 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));\n}\n.translate-y-0 {\n --tw-translate-y: 0px;\n 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));\n}\n.translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n 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));\n}\n.rotate-2 {\n --tw-rotate: 2deg;\n 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));\n}\n.rotate-\\[-15deg\\] {\n --tw-rotate: -15deg;\n 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));\n}\n.rotate-\\[15deg\\] {\n --tw-rotate: 15deg;\n 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));\n}\n.scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n 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));\n}\n.scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n 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));\n}\n.transform {\n 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));\n}\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-grab {\n cursor: grab;\n}\n.cursor-grabbing {\n cursor: grabbing;\n}\n.cursor-help {\n cursor: help;\n}\n.cursor-move {\n cursor: move;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-text {\n cursor: text;\n}\n.cursor-wait {\n cursor: wait;\n}\n.touch-none {\n touch-action: none;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.resize {\n resize: both;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n.grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-6 {\n gap: 1.5rem;\n}\n.gap-8 {\n gap: 2rem;\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-3xl {\n border-radius: 1.5rem;\n}\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n.rounded-\\[var\\(--login-border-radius\\)\\] {\n border-radius: var(--login-border-radius);\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius);\n}\n.rounded-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.rounded-t {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-l-0 {\n border-left-width: 0px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-l-4 {\n border-left-width: 4px;\n}\n.border-l-\\[0\\.5px\\] {\n border-left-width: 0.5px;\n}\n.border-r-0 {\n border-right-width: 0px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-t-0 {\n border-top-width: 0px;\n}\n.border-t-2 {\n border-top-width: 2px;\n}\n.border-t-\\[0\\.5px\\] {\n border-top-width: 0.5px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-dotted {\n border-style: dotted;\n}\n.border-none {\n border-style: none;\n}\n.border-accent {\n --tw-border-opacity: 1;\n border-color: hsl(var(--accent) / var(--tw-border-opacity, 1));\n}\n.border-blue-200 {\n --tw-border-opacity: 1;\n border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));\n}\n.border-blue-600 {\n --tw-border-opacity: 1;\n border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));\n}\n.border-border {\n --tw-border-opacity: 1;\n border-color: hsl(var(--border) / var(--tw-border-opacity, 1));\n}\n.border-border\\/50 {\n border-color: hsl(var(--border) / 0.5);\n}\n.border-destructive {\n --tw-border-opacity: 1;\n border-color: hsl(var(--destructive) / var(--tw-border-opacity, 1));\n}\n.border-error {\n --tw-border-opacity: 1;\n border-color: hsl(var(--error) / var(--tw-border-opacity, 1));\n}\n.border-error\\/20 {\n border-color: hsl(var(--error) / 0.2);\n}\n.border-foreground {\n --tw-border-opacity: 1;\n border-color: hsl(var(--foreground) / var(--tw-border-opacity, 1));\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.border-gray-400 {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.border-gray-900 {\n --tw-border-opacity: 1;\n border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));\n}\n.border-green-200 {\n --tw-border-opacity: 1;\n border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));\n}\n.border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));\n}\n.border-green-600 {\n --tw-border-opacity: 1;\n border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));\n}\n.border-input {\n --tw-border-opacity: 1;\n border-color: hsl(var(--input) / var(--tw-border-opacity, 1));\n}\n.border-muted-foreground\\/20 {\n border-color: hsl(var(--muted-foreground) / 0.2);\n}\n.border-muted-foreground\\/25 {\n border-color: hsl(var(--muted-foreground) / 0.25);\n}\n.border-orange-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));\n}\n.border-primary {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\n}\n.border-primary\\/50 {\n border-color: hsl(var(--primary) / 0.5);\n}\n.border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));\n}\n.border-secondary {\n --tw-border-opacity: 1;\n border-color: hsl(var(--secondary) / var(--tw-border-opacity, 1));\n}\n.border-success {\n --tw-border-opacity: 1;\n border-color: hsl(var(--success) / var(--tw-border-opacity, 1));\n}\n.border-success\\/40 {\n border-color: hsl(var(--success) / 0.4);\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-warning {\n --tw-border-opacity: 1;\n border-color: hsl(var(--warning) / var(--tw-border-opacity, 1));\n}\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n.border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.border-yellow-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));\n}\n.border-yellow-500 {\n --tw-border-opacity: 1;\n border-color: rgb(234 179 8 / var(--tw-border-opacity, 1));\n}\n.border-yellow-600 {\n --tw-border-opacity: 1;\n border-color: rgb(202 138 4 / var(--tw-border-opacity, 1));\n}\n.border-t-primary {\n --tw-border-opacity: 1;\n border-top-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.border-t-transparent {\n border-top-color: transparent;\n}\n.bg-\\[var\\(--login-background\\)\\] {\n background-color: var(--login-background);\n}\n.bg-\\[var\\(--login-primary\\)\\] {\n background-color: var(--login-primary);\n}\n.bg-accent {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.bg-accent\\/20 {\n background-color: hsl(var(--accent) / 0.2);\n}\n.bg-background {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.bg-background\\/80 {\n background-color: hsl(var(--background) / 0.8);\n}\n.bg-background\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.bg-black\\/0 {\n background-color: rgb(0 0 0 / 0);\n}\n.bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.bg-black\\/40 {\n background-color: rgb(0 0 0 / 0.4);\n}\n.bg-black\\/5 {\n background-color: rgb(0 0 0 / 0.05);\n}\n.bg-black\\/60 {\n background-color: rgb(0 0 0 / 0.6);\n}\n.bg-black\\/80 {\n background-color: rgb(0 0 0 / 0.8);\n}\n.bg-black\\/90 {\n background-color: rgb(0 0 0 / 0.9);\n}\n.bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.bg-border {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--border) / var(--tw-bg-opacity, 1));\n}\n.bg-card {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--card) / var(--tw-bg-opacity, 1));\n}\n.bg-destructive {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.bg-destructive\\/5 {\n background-color: hsl(var(--destructive) / 0.05);\n}\n.bg-error {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--error) / var(--tw-bg-opacity, 1));\n}\n.bg-error\\/20 {\n background-color: hsl(var(--error) / 0.2);\n}\n.bg-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));\n}\n.bg-green-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n.bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));\n}\n.bg-green-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\n}\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.bg-muted {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.bg-muted\\/20 {\n background-color: hsl(var(--muted) / 0.2);\n}\n.bg-muted\\/50 {\n background-color: hsl(var(--muted) / 0.5);\n}\n.bg-muted\\/80 {\n background-color: hsl(var(--muted) / 0.8);\n}\n.bg-orange-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));\n}\n.bg-popover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--popover) / var(--tw-bg-opacity, 1));\n}\n.bg-primary {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.bg-primary-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-primary\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.bg-primary\\/20 {\n background-color: hsl(var(--primary) / 0.2);\n}\n.bg-primary\\/30 {\n background-color: hsl(var(--primary) / 0.3);\n}\n.bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.bg-purple-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));\n}\n.bg-purple-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));\n}\n.bg-red-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.bg-secondary {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.bg-secondary-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-secondary\\/20 {\n background-color: hsl(var(--secondary) / 0.2);\n}\n.bg-success {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.bg-success\\/20 {\n background-color: hsl(var(--success) / 0.2);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-warning {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.bg-warning\\/20 {\n background-color: hsl(var(--warning) / 0.2);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-white\\/30 {\n background-color: rgb(255 255 255 / 0.3);\n}\n.bg-white\\/80 {\n background-color: rgb(255 255 255 / 0.8);\n}\n.bg-yellow-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));\n}\n.bg-opacity-80 {\n --tw-bg-opacity: 0.8;\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.from-black\\/80 {\n --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-blue-600 {\n --tw-gradient-from: #2563eb var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary\\/5 {\n --tw-gradient-from: hsl(var(--primary) / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-purple-600 {\n --tw-gradient-from: #9333ea var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-white\\/20 {\n --tw-gradient-from: rgb(255 255 255 / 0.2) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-white\\/5 {\n --tw-gradient-from: rgb(255 255 255 / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.via-border {\n --tw-gradient-to: hsl(var(--border) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--border) / 1) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-gray-900\\/80 {\n --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n rgb(17 24 39 / 0.8) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-transparent {\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n transparent var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.to-black\\/5 {\n --tw-gradient-to: rgb(0 0 0 / 0.05) var(--tw-gradient-to-position);\n}\n.to-black\\/80 {\n --tw-gradient-to: rgb(0 0 0 / 0.8) var(--tw-gradient-to-position);\n}\n.to-pink-600 {\n --tw-gradient-to: #db2777 var(--tw-gradient-to-position);\n}\n.to-primary\\/10 {\n --tw-gradient-to: hsl(var(--primary) / 0.1) var(--tw-gradient-to-position);\n}\n.to-purple-600 {\n --tw-gradient-to: #9333ea var(--tw-gradient-to-position);\n}\n.to-transparent {\n --tw-gradient-to: transparent var(--tw-gradient-to-position);\n}\n.to-white\\/0 {\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n}\n.fill-current {\n fill: currentColor;\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-7 {\n padding: 1.75rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pb-3 {\n padding-bottom: 0.75rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.pl-10 {\n padding-left: 2.5rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-7 {\n padding-left: 1.75rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-9 {\n padding-left: 2.25rem;\n}\n.pr-10 {\n padding-right: 2.5rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-8 {\n padding-right: 2rem;\n}\n.pt-0 {\n padding-top: 0px;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.pt-6 {\n padding-top: 1.5rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-mono {\n font-family: var(--font-mono);\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.capitalize {\n text-transform: capitalize;\n}\n.italic {\n font-style: italic;\n}\n.leading-none {\n line-height: 1;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.leading-snug {\n line-height: 1.375;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-\\[var\\(--login-primary\\)\\] {\n color: var(--login-primary);\n}\n.text-\\[var\\(--login-text\\)\\] {\n color: var(--login-text);\n}\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.text-blue-600 {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\n}\n.text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\n}\n.text-blue-900 {\n --tw-text-opacity: 1;\n color: rgb(30 58 138 / var(--tw-text-opacity, 1));\n}\n.text-card-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--card-foreground) / var(--tw-text-opacity, 1));\n}\n.text-current {\n color: currentColor;\n}\n.text-destructive {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive) / var(--tw-text-opacity, 1));\n}\n.text-destructive-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.text-error {\n --tw-text-opacity: 1;\n color: hsl(var(--error) / var(--tw-text-opacity, 1));\n}\n.text-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.text-foreground\\/50 {\n color: hsl(var(--foreground) / 0.5);\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\n}\n.text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\n}\n.text-green-800 {\n --tw-text-opacity: 1;\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\n}\n.text-green-900 {\n --tw-text-opacity: 1;\n color: rgb(20 83 45 / var(--tw-text-opacity, 1));\n}\n.text-muted-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\n}\n.text-orange-800 {\n --tw-text-opacity: 1;\n color: rgb(154 52 18 / var(--tw-text-opacity, 1));\n}\n.text-orange-900 {\n --tw-text-opacity: 1;\n color: rgb(124 45 18 / var(--tw-text-opacity, 1));\n}\n.text-popover-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--popover-foreground) / var(--tw-text-opacity, 1));\n}\n.text-primary {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.text-primary-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.text-purple-500 {\n --tw-text-opacity: 1;\n color: rgb(168 85 247 / var(--tw-text-opacity, 1));\n}\n.text-purple-600 {\n --tw-text-opacity: 1;\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\n}\n.text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity, 1));\n}\n.text-red-900 {\n --tw-text-opacity: 1;\n color: rgb(127 29 29 / var(--tw-text-opacity, 1));\n}\n.text-secondary-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--secondary-foreground) / var(--tw-text-opacity, 1));\n}\n.text-success {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.text-warning {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.text-white\\/50 {\n color: rgb(255 255 255 / 0.5);\n}\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.text-yellow-600 {\n --tw-text-opacity: 1;\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\n}\n.text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\n}\n.text-yellow-800 {\n --tw-text-opacity: 1;\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.opacity-\\[0\\.03\\] {\n opacity: 0.03;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-primary\\/50 {\n --tw-shadow-color: hsl(var(--primary) / 0.5);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-purple-500\\/25 {\n --tw-shadow-color: rgb(168 85 247 / 0.25);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.ring {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-gray-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));\n}\n.ring-offset-2 {\n --tw-ring-offset-width: 2px;\n}\n.ring-offset-background {\n --tw-ring-offset-color: hsl(var(--background) / 1);\n}\n.blur {\n --tw-blur: blur(8px);\n 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);\n}\n.blur-md {\n --tw-blur: blur(12px);\n 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);\n}\n.blur-xl {\n --tw-blur: blur(24px);\n 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);\n}\n.filter {\n 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);\n}\n.backdrop-blur-lg {\n --tw-backdrop-blur: blur(16px);\n -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);\n 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);\n}\n.backdrop-blur-md {\n --tw-backdrop-blur: blur(12px);\n -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);\n 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);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n -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);\n 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);\n}\n.backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\n -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);\n 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);\n}\n.transition {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n -webkit-backdrop-filter;\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter,\n -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-100 {\n transition-duration: 100ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.shadow-sm {\n box-shadow: var(--shadow-sm);\n}\n.shadow-md {\n box-shadow: var(--shadow-md);\n}\n.shadow-lg {\n box-shadow: var(--shadow-lg);\n}\n.shadow-xl {\n box-shadow: var(--shadow-xl);\n}\n.shadow-2xl {\n box-shadow: var(--shadow-2xl);\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n.transition-all {\n transition-property: all;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n}\n.transition-opacity {\n transition-property: opacity;\n}\n.transition-shadow {\n transition-property: box-shadow;\n}\n.transition-transform {\n transition-property: transform;\n}\n.ease-out {\n transition-timing-function: var(--ease-out);\n}\n:root {\n --primary-50: 240 249 255;\n --primary-100: 224 242 254;\n --primary-200: 186 230 253;\n --primary-300: 125 211 252;\n --primary-400: 56 189 248;\n --primary-500: 14 165 233;\n --primary-600: 2 132 199;\n --primary-700: 3 105 161;\n --primary-800: 7 89 133;\n --primary-900: 12 74 110;\n --primary-950: 8 47 73;\n --secondary-50: 248 250 252;\n --secondary-100: 241 245 249;\n --secondary-200: 226 232 240;\n --secondary-300: 203 213 225;\n --secondary-400: 148 163 184;\n --secondary-500: 100 116 139;\n --secondary-600: 71 85 105;\n --secondary-700: 51 65 85;\n --secondary-800: 30 41 59;\n --secondary-900: 15 23 42;\n --secondary-950: 2 6 23;\n --success-50: 240 253 244;\n --success-100: 220 252 231;\n --success-200: 187 247 208;\n --success-300: 134 239 172;\n --success-400: 74 222 128;\n --success-500: 34 197 94;\n --success-600: 22 163 74;\n --success-700: 21 128 61;\n --success-800: 22 101 52;\n --success-900: 20 83 45;\n --success-950: 5 46 22;\n --warning-50: 254 252 232;\n --warning-100: 254 249 195;\n --warning-200: 254 240 138;\n --warning-300: 253 224 71;\n --warning-400: 250 204 21;\n --warning-500: 234 179 8;\n --warning-600: 202 138 4;\n --warning-700: 161 98 7;\n --warning-800: 133 77 14;\n --warning-900: 113 63 18;\n --warning-950: 66 32 6;\n --error-50: 254 242 242;\n --error-100: 254 226 226;\n --error-200: 254 202 202;\n --error-300: 252 165 165;\n --error-400: 248 113 113;\n --error-500: 239 68 68;\n --error-600: 220 38 38;\n --error-700: 185 28 28;\n --error-800: 153 27 27;\n --error-900: 127 29 29;\n --error-950: 69 10 10;\n --background: 0 0% 100%;\n --foreground: 222.2 47.4% 11.2%;\n --card: 0 0% 100%;\n --card-foreground: 222.2 47.4% 11.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 47.4% 11.2%;\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n --secondary: 210 40% 96%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n --muted: 210 40% 96%;\n --muted-foreground: 215.4 16.3% 46.9%;\n --accent: 210 40% 96%;\n --accent-foreground: 222.2 47.4% 11.2%;\n --destructive: 0 100% 50%;\n --destructive-foreground: 210 40% 98%;\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n --ring: 215 20.2% 65.1%;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n --font-sans:\n "Inter",\n -apple-system,\n BlinkMacSystemFont,\n "Segoe UI",\n Roboto,\n "Helvetica Neue",\n Arial,\n sans-serif;\n --font-serif:\n "Crimson Text",\n Georgia,\n "Times New Roman",\n serif;\n --font-mono:\n "JetBrains Mono",\n "Fira Code",\n "Consolas",\n monospace;\n --text-xs: 0.75rem;\n --text-sm: 0.875rem;\n --text-base: 1rem;\n --text-lg: 1.125rem;\n --text-xl: 1.25rem;\n --text-2xl: 1.5rem;\n --text-3xl: 1.875rem;\n --text-4xl: 2.25rem;\n --text-5xl: 3rem;\n --text-6xl: 3.75rem;\n --text-7xl: 4.5rem;\n --text-8xl: 6rem;\n --text-9xl: 8rem;\n --leading-none: 1;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --leading-loose: 2;\n --font-thin: 100;\n --font-extralight: 200;\n --font-light: 300;\n --font-normal: 400;\n --font-medium: 500;\n --font-semibold: 600;\n --font-bold: 700;\n --font-extrabold: 800;\n --font-black: 900;\n --spacing-0: 0;\n --spacing-px: 1px;\n --spacing-0-5: 0.125rem;\n --spacing-1: 0.25rem;\n --spacing-1-5: 0.375rem;\n --spacing-2: 0.5rem;\n --spacing-2-5: 0.625rem;\n --spacing-3: 0.75rem;\n --spacing-3-5: 0.875rem;\n --spacing-4: 1rem;\n --spacing-5: 1.25rem;\n --spacing-6: 1.5rem;\n --spacing-7: 1.75rem;\n --spacing-8: 2rem;\n --spacing-9: 2.25rem;\n --spacing-10: 2.5rem;\n --spacing-11: 2.75rem;\n --spacing-12: 3rem;\n --spacing-14: 3.5rem;\n --spacing-16: 4rem;\n --spacing-20: 5rem;\n --spacing-24: 6rem;\n --spacing-28: 7rem;\n --spacing-32: 8rem;\n --spacing-36: 9rem;\n --spacing-40: 10rem;\n --spacing-44: 11rem;\n --spacing-48: 12rem;\n --spacing-52: 13rem;\n --spacing-56: 14rem;\n --spacing-60: 15rem;\n --spacing-64: 16rem;\n --spacing-72: 18rem;\n --spacing-80: 20rem;\n --spacing-96: 24rem;\n --radius-none: 0;\n --radius-sm: 0.125rem;\n --radius-base: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --radius-full: 9999px;\n --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);\n --shadow-none: 0 0 #0000;\n --elevation-0: var(--shadow-none);\n --elevation-1: var(--shadow-sm);\n --elevation-2: var(--shadow-base);\n --elevation-3: var(--shadow-md);\n --elevation-4: var(--shadow-lg);\n --elevation-5: var(--shadow-xl);\n --elevation-6: var(--shadow-2xl);\n --duration-75: 75ms;\n --duration-100: 100ms;\n --duration-150: 150ms;\n --duration-200: 200ms;\n --duration-300: 300ms;\n --duration-500: 500ms;\n --duration-700: 700ms;\n --duration-1000: 1000ms;\n --ease-linear: linear;\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n --animate-fade-in: fadeIn var(--duration-300) var(--ease-out);\n --animate-fade-out: fadeOut var(--duration-300) var(--ease-in);\n --animate-slide-in-up: slideInUp var(--duration-300) var(--ease-out);\n --animate-slide-in-down: slideInDown var(--duration-300) var(--ease-out);\n --animate-slide-in-left: slideInLeft var(--duration-300) var(--ease-out);\n --animate-slide-in-right: slideInRight var(--duration-300) var(--ease-out);\n --animate-scale-in: scaleIn var(--duration-200) var(--ease-out);\n --animate-scale-out: scaleOut var(--duration-200) var(--ease-in);\n --animate-bounce: bounce var(--duration-500) var(--ease-bounce);\n --animate-pulse: pulse var(--duration-1000) var(--ease-in-out) infinite;\n --animate-spin: spin var(--duration-1000) var(--ease-linear) infinite;\n --breakpoint-sm: 640px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --container-sm: 640px;\n --container-md: 768px;\n --container-lg: 1024px;\n --container-xl: 1280px;\n --container-2xl: 1536px;\n --z-0: 0;\n --z-10: 10;\n --z-20: 20;\n --z-30: 30;\n --z-40: 40;\n --z-50: 50;\n --z-auto: auto;\n --z-dropdown: 1000;\n --z-sticky: 1020;\n --z-fixed: 1030;\n --z-modal-backdrop: 1040;\n --z-modal: 1050;\n --z-popover: 1060;\n --z-tooltip: 1070;\n --z-toast: 1080;\n --button-height-sm: 2rem;\n --button-height-md: 2.5rem;\n --button-height-lg: 3rem;\n --button-height-xl: 3.5rem;\n --button-padding-sm: 0.5rem 0.75rem;\n --button-padding-md: 0.625rem 1rem;\n --button-padding-lg: 0.75rem 1.25rem;\n --button-padding-xl: 1rem 1.5rem;\n --button-font-size-sm: var(--text-sm);\n --button-font-size-md: var(--text-base);\n --button-font-size-lg: var(--text-lg);\n --button-font-size-xl: var(--text-xl);\n --input-height-sm: 2rem;\n --input-height-md: 2.5rem;\n --input-height-lg: 3rem;\n --input-height-xl: 3.5rem;\n --input-padding-sm: 0.5rem 0.75rem;\n --input-padding-md: 0.625rem 1rem;\n --input-padding-lg: 0.75rem 1.25rem;\n --input-padding-xl: 1rem 1.5rem;\n --input-border-width: 1px;\n --input-border-radius: var(--radius-md);\n --input-focus-ring-width: 2px;\n --input-focus-ring-offset: 2px;\n --card-padding-sm: 1rem;\n --card-padding-md: 1.5rem;\n --card-padding-lg: 2rem;\n --card-padding-xl: 2.5rem;\n --card-border-radius: var(--radius-lg);\n --card-border-width: 1px;\n --card-shadow: var(--elevation-1);\n --card-hover-shadow: var(--elevation-2);\n}\n.dark {\n --background: 224 71% 4%;\n --foreground: 213 31% 91%;\n --card: 224 71% 4%;\n --card-foreground: 213 31% 91%;\n --popover: 224 71% 4%;\n --popover-foreground: 213 31% 91%;\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 1.2%;\n --secondary: 222.2 84% 4.9%;\n --secondary-foreground: 210 40% 98%;\n --muted: 223 47% 11%;\n --muted-foreground: 215.4 16.3% 56.9%;\n --accent: 216 34% 17%;\n --accent-foreground: 210 40% 98%;\n --destructive: 0 63% 31%;\n --destructive-foreground: 210 40% 98%;\n --border: 216 34% 17%;\n --input: 216 34% 17%;\n --ring: 216 34% 17%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes slideInUp {\n from {\n transform: translateY(100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n@keyframes slideInDown {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n@keyframes slideInLeft {\n from {\n transform: translateX(-100%);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes slideInRight {\n from {\n transform: translateX(100%);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes scaleIn {\n from {\n transform: scale(0.95);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes scaleOut {\n from {\n transform: scale(1);\n opacity: 1;\n }\n to {\n transform: scale(0.95);\n opacity: 0;\n }\n}\n@keyframes bounce {\n 0%, 20%, 53%, 80%, 100% {\n transform: translate3d(0, 0, 0);\n }\n 40%, 43% {\n transform: translate3d(0, -30px, 0);\n }\n 70% {\n transform: translate3d(0, -15px, 0);\n }\n 90% {\n transform: translate3d(0, -4px, 0);\n }\n}\n@keyframes pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-fade-in {\n animation: var(--animate-fade-in);\n}\n.animate-fade-out {\n animation: var(--animate-fade-out);\n}\n.animate-slide-in-up {\n animation: var(--animate-slide-in-up);\n}\n.animate-slide-in-down {\n animation: var(--animate-slide-in-down);\n}\n.animate-slide-in-left {\n animation: var(--animate-slide-in-left);\n}\n.animate-slide-in-right {\n animation: var(--animate-slide-in-right);\n}\n.animate-scale-in {\n animation: var(--animate-scale-in);\n}\n.animate-scale-out {\n animation: var(--animate-scale-out);\n}\n.animate-bounce {\n animation: var(--animate-bounce);\n}\n.animate-pulse {\n animation: var(--animate-pulse);\n}\n.animate-spin {\n animation: var(--animate-spin);\n}\n@media (max-width: 639px) {\n .container {\n max-width: 100%;\n }\n}\n@media (min-width: 640px) {\n .container {\n max-width: var(--container-sm);\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: var(--container-md);\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: var(--container-lg);\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: var(--container-xl);\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: var(--container-2xl);\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n@keyframes pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: .5;\n }\n}\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: translateY(0);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes slideIn {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes scaleIn {\n from {\n transform: scale(0.95);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n.file\\:border-0::file-selector-button {\n border-width: 0px;\n}\n.file\\:bg-transparent::file-selector-button {\n background-color: transparent;\n}\n.file\\:font-medium::file-selector-button {\n font-weight: 500;\n}\n.placeholder\\:text-muted-foreground::-moz-placeholder {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.placeholder\\:text-muted-foreground::placeholder {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:-translate-y-0\\.5:hover {\n --tw-translate-y: -0.125rem;\n 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));\n}\n.hover\\:rotate-90:hover {\n --tw-rotate: 90deg;\n 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));\n}\n.hover\\:scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n 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));\n}\n.hover\\:scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n 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));\n}\n.hover\\:border-error\\/80:hover {\n border-color: hsl(var(--error) / 0.8);\n}\n.hover\\:border-gray-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-gray-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-muted-foreground\\/40:hover {\n border-color: hsl(var(--muted-foreground) / 0.4);\n}\n.hover\\:border-primary\\/20:hover {\n border-color: hsl(var(--primary) / 0.2);\n}\n.hover\\:border-primary\\/50:hover {\n border-color: hsl(var(--primary) / 0.5);\n}\n.hover\\:border-success\\/80:hover {\n border-color: hsl(var(--success) / 0.8);\n}\n.hover\\:border-white\\/30:hover {\n border-color: rgb(255 255 255 / 0.3);\n}\n.hover\\:bg-accent:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-background\\/90:hover {\n background-color: hsl(var(--background) / 0.9);\n}\n.hover\\:bg-black\\/10:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n.hover\\:bg-card\\/90:hover {\n background-color: hsl(var(--card) / 0.9);\n}\n.hover\\:bg-destructive\\/90:hover {\n background-color: hsl(var(--destructive) / 0.9);\n}\n.hover\\:bg-error\\/90:hover {\n background-color: hsl(var(--error) / 0.9);\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-100\\/50:hover {\n background-color: rgb(243 244 246 / 0.5);\n}\n.hover\\:bg-gray-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted\\/30:hover {\n background-color: hsl(var(--muted) / 0.3);\n}\n.hover\\:bg-muted\\/50:hover {\n background-color: hsl(var(--muted) / 0.5);\n}\n.hover\\:bg-muted\\/80:hover {\n background-color: hsl(var(--muted) / 0.8);\n}\n.hover\\:bg-primary:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-primary\\/20:hover {\n background-color: hsl(var(--primary) / 0.2);\n}\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n.hover\\:bg-purple-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(233 213 255 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-red-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-secondary:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-secondary\\/80:hover {\n background-color: hsl(var(--secondary) / 0.8);\n}\n.hover\\:bg-success\\/90:hover {\n background-color: hsl(var(--success) / 0.9);\n}\n.hover\\:bg-warning\\/90:hover {\n background-color: hsl(var(--warning) / 0.9);\n}\n.hover\\:bg-white\\/20:hover {\n background-color: rgb(255 255 255 / 0.2);\n}\n.hover\\:from-blue-700:hover {\n --tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:from-purple-700:hover {\n --tw-gradient-from: #7e22ce var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:to-pink-700:hover {\n --tw-gradient-to: #be185d var(--tw-gradient-to-position);\n}\n.hover\\:to-purple-700:hover {\n --tw-gradient-to: #7e22ce var(--tw-gradient-to-position);\n}\n.hover\\:text-accent-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-primary-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.hover\\:opacity-90:hover {\n opacity: 0.9;\n}\n.hover\\:shadow-\\[0_0_20px_rgba\\(var\\(--primary\\)\\,0\\.5\\)\\]:hover {\n --tw-shadow: 0 0 20px rgba(var(--primary),0.5);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-lg:hover {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-xl:hover {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-primary\\/20:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:shadow-primary\\/60:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.6);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:brightness-110:hover {\n --tw-brightness: brightness(1.1);\n 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);\n}\n.hover\\:shadow-md:hover {\n box-shadow: var(--shadow-md);\n}\n.hover\\:shadow-lg:hover {\n box-shadow: var(--shadow-lg);\n}\n.hover\\:shadow-xl:hover {\n box-shadow: var(--shadow-xl);\n}\n.focus\\:bg-accent:focus {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-error\\/10:focus {\n background-color: hsl(var(--error) / 0.1);\n}\n.focus\\:bg-gray-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-success\\/10:focus {\n background-color: hsl(var(--success) / 0.1);\n}\n.focus\\:bg-warning\\/10:focus {\n background-color: hsl(var(--warning) / 0.1);\n}\n.focus\\:text-accent-foreground:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-error:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--error) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-foreground:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-success:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-warning:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.focus\\:opacity-100:focus {\n opacity: 1;\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-\\[var\\(--login-primary\\)\\]:focus {\n --tw-ring-color: var(--login-primary);\n}\n.focus\\:ring-primary\\/30:focus {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.focus\\:ring-ring:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:border-2:focus-visible {\n border-width: 2px;\n}\n.focus-visible\\:border-b-2:focus-visible {\n border-bottom-width: 2px;\n}\n.focus-visible\\:border-error:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--error) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:border-primary:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:border-success:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--success) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:bg-transparent:focus-visible {\n background-color: transparent;\n}\n.focus-visible\\:shadow-lg:focus-visible {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.focus-visible\\:shadow-primary\\/30:focus-visible {\n --tw-shadow-color: hsl(var(--primary) / 0.3);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ring-0:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-error\\/30:focus-visible {\n --tw-ring-color: hsl(var(--error) / 0.3);\n}\n.focus-visible\\:ring-error\\/50:focus-visible {\n --tw-ring-color: hsl(var(--error) / 0.5);\n}\n.focus-visible\\:ring-gray-400\\/30:focus-visible {\n --tw-ring-color: rgb(156 163 175 / 0.3);\n}\n.focus-visible\\:ring-primary\\/30:focus-visible {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.focus-visible\\:ring-primary\\/50:focus-visible {\n --tw-ring-color: hsl(var(--primary) / 0.5);\n}\n.focus-visible\\:ring-purple-400\\/30:focus-visible {\n --tw-ring-color: rgb(192 132 252 / 0.3);\n}\n.focus-visible\\:ring-purple-500\\/50:focus-visible {\n --tw-ring-color: rgb(168 85 247 / 0.5);\n}\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.focus-visible\\:ring-success\\/30:focus-visible {\n --tw-ring-color: hsl(var(--success) / 0.3);\n}\n.focus-visible\\:ring-success\\/50:focus-visible {\n --tw-ring-color: hsl(var(--success) / 0.5);\n}\n.focus-visible\\:ring-warning\\/30:focus-visible {\n --tw-ring-color: hsl(var(--warning) / 0.3);\n}\n.focus-visible\\:ring-white\\/50:focus-visible {\n --tw-ring-color: rgb(255 255 255 / 0.5);\n}\n.focus-visible\\:ring-offset-1:focus-visible {\n --tw-ring-offset-width: 1px;\n}\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:ring-offset-background:focus-visible {\n --tw-ring-offset-color: hsl(var(--background) / 1);\n}\n.focus-visible\\:shadow-lg:focus-visible {\n box-shadow: var(--shadow-lg);\n}\n.active\\:translate-y-0:active {\n --tw-translate-y: 0px;\n 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));\n}\n.active\\:translate-y-0\\.5:active {\n --tw-translate-y: 0.125rem;\n 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));\n}\n.active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n 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));\n}\n.active\\:cursor-grabbing:active {\n cursor: grabbing;\n}\n.active\\:bg-error\\/80:active {\n background-color: hsl(var(--error) / 0.8);\n}\n.active\\:bg-gray-100:active {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-gray-200:active {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-gray-300:active {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-primary\\/30:active {\n background-color: hsl(var(--primary) / 0.3);\n}\n.active\\:bg-success\\/80:active {\n background-color: hsl(var(--success) / 0.8);\n}\n.active\\:bg-white\\/30:active {\n background-color: rgb(255 255 255 / 0.3);\n}\n.active\\:from-blue-800:active {\n --tw-gradient-from: #1e40af var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(30 64 175 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.active\\:to-purple-800:active {\n --tw-gradient-to: #6b21a8 var(--tw-gradient-to-position);\n}\n.active\\:shadow-\\[0_0_10px_rgba\\(var\\(--primary\\)\\,0\\.3\\)\\]:active {\n --tw-shadow: 0 0 10px rgba(var(--primary),0.3);\n --tw-shadow-colored: 0 0 10px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-md:active {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-sm:active {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-primary\\/40:active {\n --tw-shadow-color: hsl(var(--primary) / 0.4);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.active\\:brightness-90:active {\n --tw-brightness: brightness(.9);\n 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);\n}\n.active\\:brightness-95:active {\n --tw-brightness: brightness(.95);\n 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);\n}\n.active\\:shadow-sm:active {\n box-shadow: var(--shadow-sm);\n}\n.active\\:shadow-md:active {\n box-shadow: var(--shadow-md);\n}\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.group:hover .group-hover\\:flex {\n display: flex;\n}\n.group:hover .group-hover\\:bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.group:hover .group-hover\\:text-primary {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n.group.destructive .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n border-color: hsl(var(--muted) / 0.4);\n}\n.group.destructive .group-\\[\\.destructive\\]\\:text-red-300 {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30:hover {\n border-color: hsl(var(--destructive) / 0.3);\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:bg-destructive:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-red-50:hover {\n --tw-text-opacity: 1;\n color: rgb(254 242 242 / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-destructive:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--destructive) / var(--tw-ring-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-red-400:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600:focus {\n --tw-ring-offset-color: #dc2626;\n}\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom] {\n --tw-translate-y: 0.25rem;\n 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));\n}\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left] {\n --tw-translate-x: -0.25rem;\n 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));\n}\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=right] {\n --tw-translate-x: 0.25rem;\n 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));\n}\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top] {\n --tw-translate-y: -0.25rem;\n 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));\n}\n.data-\\[state\\=checked\\]\\:translate-x-4[data-state=checked] {\n --tw-translate-x: 1rem;\n 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));\n}\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked] {\n --tw-translate-x: 1.25rem;\n 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));\n}\n.data-\\[state\\=checked\\]\\:translate-x-7[data-state=checked] {\n --tw-translate-x: 1.75rem;\n 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));\n}\n.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked] {\n --tw-translate-x: 0px;\n 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));\n}\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=cancel] {\n --tw-translate-x: 0px;\n 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));\n}\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=end] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n 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));\n}\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=move] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n 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));\n}\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n.data-\\[state\\=checked\\]\\:animate-bounce[data-state=checked] {\n animation: bounce 1s infinite;\n}\n.data-\\[state\\=active\\]\\:border-primary[data-state=active] {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:border-primary[data-state=checked] {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-background[data-state=active] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-primary[data-state=active] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-transparent[data-state=active] {\n background-color: transparent;\n}\n.data-\\[state\\=checked\\]\\:bg-accent[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-error[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--error) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-primary[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-success[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-warning[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:bg-accent[data-state=open] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=unchecked\\]\\:bg-input[data-state=unchecked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--input) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:text-foreground[data-state=active] {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:text-primary-foreground[data-state=active] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open] {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:underline[data-state=active] {\n text-decoration-line: underline;\n}\n.data-\\[state\\=active\\]\\:underline-offset-4[data-state=active] {\n text-underline-offset: 4px;\n}\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n.data-\\[state\\=inactive\\]\\:opacity-60[data-state=inactive] {\n opacity: 0.6;\n}\n.data-\\[state\\=active\\]\\:shadow-md[data-state=active] {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=move] {\n transition-property: none;\n}\n.data-\\[state\\=open\\]\\:duration-150[data-state=open] {\n transition-duration: 150ms;\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n box-shadow: var(--shadow-sm);\n}\n.data-\\[state\\=active\\]\\:shadow-md[data-state=active] {\n box-shadow: var(--shadow-md);\n}\n.data-\\[state\\=checked\\]\\:animate-bounce[data-state=checked] {\n animation: bounce 1s infinite;\n}\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=move] {\n transition: none;\n}\n.group[data-state=open] .group-data-\\[state\\=open\\]\\:rotate-180 {\n --tw-rotate: 180deg;\n 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));\n}\n.dark\\:border-blue-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-error\\/20:is(.dark *) {\n border-color: hsl(var(--error) / 0.2);\n}\n.dark\\:border-error\\/30:is(.dark *) {\n border-color: hsl(var(--error) / 0.3);\n}\n.dark\\:border-gray-100:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-600:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-700:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-700\\/20:is(.dark *) {\n border-color: rgb(55 65 81 / 0.2);\n}\n.dark\\:border-gray-700\\/30:is(.dark *) {\n border-color: rgb(55 65 81 / 0.3);\n}\n.dark\\:border-gray-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-green-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(22 101 52 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-orange-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(154 52 18 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-primary\\/30:is(.dark *) {\n border-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:border-success\\/20:is(.dark *) {\n border-color: hsl(var(--success) / 0.2);\n}\n.dark\\:bg-blue-900\\/20:is(.dark *) {\n background-color: rgb(30 58 138 / 0.2);\n}\n.dark\\:bg-error\\/90:is(.dark *) {\n background-color: hsl(var(--error) / 0.9);\n}\n.dark\\:bg-gray-700:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-800:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-800\\/10:is(.dark *) {\n background-color: rgb(31 41 55 / 0.1);\n}\n.dark\\:bg-gray-800\\/50:is(.dark *) {\n background-color: rgb(31 41 55 / 0.5);\n}\n.dark\\:bg-gray-800\\/80:is(.dark *) {\n background-color: rgb(31 41 55 / 0.8);\n}\n.dark\\:bg-gray-800\\/90:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:bg-gray-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-900\\/10:is(.dark *) {\n background-color: rgb(17 24 39 / 0.1);\n}\n.dark\\:bg-gray-900\\/50:is(.dark *) {\n background-color: rgb(17 24 39 / 0.5);\n}\n.dark\\:bg-gray-900\\/60:is(.dark *) {\n background-color: rgb(17 24 39 / 0.6);\n}\n.dark\\:bg-gray-950:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(3 7 18 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-green-900\\/20:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:bg-orange-900\\/20:is(.dark *) {\n background-color: rgb(124 45 18 / 0.2);\n}\n.dark\\:bg-primary:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-primary\\/20:is(.dark *) {\n background-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:bg-primary\\/90:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:bg-purple-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(88 28 135 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-purple-900\\/30:is(.dark *) {\n background-color: rgb(88 28 135 / 0.3);\n}\n.dark\\:bg-success\\/90:is(.dark *) {\n background-color: hsl(var(--success) / 0.9);\n}\n.dark\\:bg-transparent:is(.dark *) {\n background-color: transparent;\n}\n.dark\\:bg-warning\\/90:is(.dark *) {\n background-color: hsl(var(--warning) / 0.9);\n}\n.dark\\:bg-white\\/5:is(.dark *) {\n background-color: rgb(255 255 255 / 0.05);\n}\n.dark\\:from-primary\\/10:is(.dark *) {\n --tw-gradient-from: hsl(var(--primary) / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:to-primary\\/20:is(.dark *) {\n --tw-gradient-to: hsl(var(--primary) / 0.2) var(--tw-gradient-to-position);\n}\n.dark\\:text-blue-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(219 234 254 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-blue-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-200:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-900:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(220 252 231 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-orange-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 237 213 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-primary-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-purple-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(192 132 252 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-red-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-white:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-yellow-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.dark\\:shadow-inner:is(.dark *) {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-lg:is(.dark *) {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-md:is(.dark *) {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-sm:is(.dark *) {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-error\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--error) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-900\\/20:is(.dark *) {\n --tw-shadow-color: rgb(17 24 39 / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-900\\/30:is(.dark *) {\n --tw-shadow-color: rgb(17 24 39 / 0.3);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-950\\/10:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-primary\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--primary) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-primary\\/20:is(.dark *) {\n --tw-shadow-color: hsl(var(--primary) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-purple-500\\/10:is(.dark *) {\n --tw-shadow-color: rgb(168 85 247 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-success\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--success) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-warning\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--warning) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:ring-gray-600:is(.dark *) {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1));\n}\n.dark\\:ring-offset-gray-950:is(.dark *) {\n --tw-ring-offset-color: #030712;\n}\n.dark\\:backdrop-blur-sm:is(.dark *) {\n --tw-backdrop-blur: blur(4px);\n -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);\n 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);\n}\n.dark\\:shadow-sm:is(.dark *) {\n box-shadow: var(--shadow-sm);\n}\n.dark\\:shadow-md:is(.dark *) {\n box-shadow: var(--shadow-md);\n}\n.dark\\:shadow-lg:is(.dark *) {\n box-shadow: var(--shadow-lg);\n}\n.dark\\:placeholder\\:text-gray-500:is(.dark *)::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:placeholder\\:text-gray-500:is(.dark *)::placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:border-error\\/80:hover:is(.dark *) {\n border-color: hsl(var(--error) / 0.8);\n}\n.dark\\:hover\\:border-gray-500:hover:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.dark\\:hover\\:border-gray-600:hover:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n.dark\\:hover\\:border-gray-700\\/30:hover:is(.dark *) {\n border-color: rgb(55 65 81 / 0.3);\n}\n.dark\\:hover\\:border-primary\\/30:hover:is(.dark *) {\n border-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:hover\\:border-success\\/80:hover:is(.dark *) {\n border-color: hsl(var(--success) / 0.8);\n}\n.dark\\:hover\\:bg-error\\/80:hover:is(.dark *) {\n background-color: hsl(var(--error) / 0.8);\n}\n.dark\\:hover\\:bg-gray-700:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-gray-700\\/50:hover:is(.dark *) {\n background-color: rgb(55 65 81 / 0.5);\n}\n.dark\\:hover\\:bg-gray-700\\/90:hover:is(.dark *) {\n background-color: rgb(55 65 81 / 0.9);\n}\n.dark\\:hover\\:bg-gray-800:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-gray-800\\/20:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.2);\n}\n.dark\\:hover\\:bg-gray-800\\/30:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.3);\n}\n.dark\\:hover\\:bg-gray-800\\/80:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.8);\n}\n.dark\\:hover\\:bg-gray-800\\/90:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:hover\\:bg-primary\\/30:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:hover\\:bg-primary\\/90:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:hover\\:bg-purple-800:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(107 33 168 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-success\\/80:hover:is(.dark *) {\n background-color: hsl(var(--success) / 0.8);\n}\n.dark\\:hover\\:bg-warning\\/80:hover:is(.dark *) {\n background-color: hsl(var(--warning) / 0.8);\n}\n.dark\\:hover\\:bg-white\\/10:hover:is(.dark *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n.dark\\:hover\\:text-blue-300:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-white:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:bg-gray-700:focus:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:focus\\:bg-gray-800:focus:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:focus\\:bg-green-900\\/20:focus:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:focus\\:bg-red-900\\/20:focus:is(.dark *) {\n background-color: rgb(127 29 29 / 0.2);\n}\n.dark\\:focus\\:bg-yellow-900\\/20:focus:is(.dark *) {\n background-color: rgb(113 63 18 / 0.2);\n}\n.dark\\:focus\\:text-gray-100:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-gray-200:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-green-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-red-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-yellow-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus-visible\\:border-primary:focus-visible:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.dark\\:focus-visible\\:border-primary\\/80:focus-visible:is(.dark *) {\n border-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:focus-visible\\:ring-error\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--error) / 0.25);\n}\n.dark\\:focus-visible\\:ring-error\\/30:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--error) / 0.3);\n}\n.dark\\:focus-visible\\:ring-gray-500\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: rgb(107 114 128 / 0.4);\n}\n.dark\\:focus-visible\\:ring-primary\\/20:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:focus-visible\\:ring-primary\\/30:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:focus-visible\\:ring-primary\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.4);\n}\n.dark\\:focus-visible\\:ring-primary\\/50:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.5);\n}\n.dark\\:focus-visible\\:ring-purple-500\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: rgb(168 85 247 / 0.4);\n}\n.dark\\:focus-visible\\:ring-success\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--success) / 0.25);\n}\n.dark\\:focus-visible\\:ring-success\\/30:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--success) / 0.3);\n}\n.dark\\:focus-visible\\:ring-warning\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--warning) / 0.25);\n}\n.dark\\:focus-visible\\:ring-offset-gray-950:focus-visible:is(.dark *) {\n --tw-ring-offset-color: #030712;\n}\n.dark\\:active\\:bg-error\\/70:active:is(.dark *) {\n background-color: hsl(var(--error) / 0.7);\n}\n.dark\\:active\\:bg-gray-600\\/90:active:is(.dark *) {\n background-color: rgb(75 85 99 / 0.9);\n}\n.dark\\:active\\:bg-gray-700\\/90:active:is(.dark *) {\n background-color: rgb(55 65 81 / 0.9);\n}\n.dark\\:active\\:bg-gray-800\\/90:active:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:active\\:bg-primary\\/40:active:is(.dark *) {\n background-color: hsl(var(--primary) / 0.4);\n}\n.dark\\:active\\:bg-primary\\/80:active:is(.dark *) {\n background-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:active\\:bg-success\\/70:active:is(.dark *) {\n background-color: hsl(var(--success) / 0.7);\n}\n.dark\\:active\\:text-blue-500:active:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.peer:disabled ~ .dark\\:peer-disabled\\:opacity-60:is(.dark *) {\n opacity: 0.6;\n}\n.dark\\:data-\\[state\\=active\\]\\:border-primary\\/80[data-state=active]:is(.dark *) {\n border-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:data-\\[state\\=active\\]\\:bg-gray-900[data-state=active]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:bg-primary\\/90[data-state=active]:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:data-\\[state\\=unchecked\\]\\:bg-gray-700\\/70[data-state=unchecked]:is(.dark *) {\n background-color: rgb(55 65 81 / 0.7);\n}\n.dark\\:data-\\[state\\=active\\]\\:text-gray-100[data-state=active]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:text-gray-200[data-state=active]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:text-white[data-state=active]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:shadow-gray-950\\/10[data-state=active]:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:data-\\[state\\=active\\]\\:shadow-gray-950\\/20[data-state=active]:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n@media (min-width: 640px) {\n .sm\\:bottom-0 {\n bottom: 0px;\n }\n .sm\\:right-0 {\n right: 0px;\n }\n .sm\\:top-auto {\n top: auto;\n }\n .sm\\:max-w-\\[425px\\] {\n max-width: 425px;\n }\n .sm\\:max-w-\\[500px\\] {\n max-width: 500px;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-col {\n flex-direction: column;\n }\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n .sm\\:text-left {\n text-align: left;\n }\n}\n@media (min-width: 768px) {\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n .lg\\:flex {\n display: flex;\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .lg\\:space-x-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(2rem * var(--tw-space-x-reverse));\n margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));\n }\n}\n.\\[\\&\\+div\\]\\:text-xs + div {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.\\[\\&\\>span\\]\\:line-clamp-1 > span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.\\[\\&_blockquote\\]\\:border-l-4 blockquote {\n border-left-width: 4px;\n}\n.\\[\\&_blockquote\\]\\:border-gray-300 blockquote {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.\\[\\&_blockquote\\]\\:pl-4 blockquote {\n padding-left: 1rem;\n}\n.\\[\\&_blockquote\\]\\:italic blockquote {\n font-style: italic;\n}\n.\\[\\&_h1\\]\\:mb-4 h1 {\n margin-bottom: 1rem;\n}\n.\\[\\&_h1\\]\\:text-3xl h1 {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.\\[\\&_h1\\]\\:font-bold h1 {\n font-weight: 700;\n}\n.\\[\\&_h2\\]\\:mb-3 h2 {\n margin-bottom: 0.75rem;\n}\n.\\[\\&_h2\\]\\:text-2xl h2 {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.\\[\\&_h2\\]\\:font-bold h2 {\n font-weight: 700;\n}\n.\\[\\&_h3\\]\\:mb-2 h3 {\n margin-bottom: 0.5rem;\n}\n.\\[\\&_h3\\]\\:text-xl h3 {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.\\[\\&_h3\\]\\:font-bold h3 {\n font-weight: 700;\n}\n.\\[\\&_h4\\]\\:mb-2 h4 {\n margin-bottom: 0.5rem;\n}\n.\\[\\&_h4\\]\\:text-lg h4 {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.\\[\\&_h4\\]\\:font-bold h4 {\n font-weight: 700;\n}\n.\\[\\&_h5\\]\\:mb-1 h5 {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_h5\\]\\:text-base h5 {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.\\[\\&_h5\\]\\:font-bold h5 {\n font-weight: 700;\n}\n.\\[\\&_h6\\]\\:mb-1 h6 {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_h6\\]\\:text-sm h6 {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.\\[\\&_h6\\]\\:font-bold h6 {\n font-weight: 700;\n}\n.\\[\\&_li\\]\\:mb-1 li {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_ol\\]\\:mb-4 ol {\n margin-bottom: 1rem;\n}\n.\\[\\&_ol\\]\\:list-decimal ol {\n list-style-type: decimal;\n}\n.\\[\\&_ol\\]\\:pl-6 ol {\n padding-left: 1.5rem;\n}\n.\\[\\&_pre\\]\\:overflow-x-auto pre {\n overflow-x: auto;\n}\n.\\[\\&_pre\\]\\:rounded pre {\n border-radius: 0.25rem;\n}\n.\\[\\&_pre\\]\\:bg-gray-100 pre {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_pre\\]\\:p-4 pre {\n padding: 1rem;\n}\n.\\[\\&_pre\\]\\:dark\\:bg-gray-800:is(.dark *) pre {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_table\\]\\:mb-4 table {\n margin-bottom: 1rem;\n}\n.\\[\\&_table\\]\\:w-full table {\n width: 100%;\n}\n.\\[\\&_table_td\\]\\:border table td {\n border-width: 1px;\n}\n.\\[\\&_table_td\\]\\:border-gray-300 table td {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.\\[\\&_table_td\\]\\:p-2 table td {\n padding: 0.5rem;\n}\n.\\[\\&_table_th\\]\\:border table th {\n border-width: 1px;\n}\n.\\[\\&_table_th\\]\\:border-gray-300 table th {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.\\[\\&_table_th\\]\\:bg-gray-50 table th {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_table_th\\]\\:p-2 table th {\n padding: 0.5rem;\n}\n.\\[\\&_table_th\\]\\:font-semibold table th {\n font-weight: 600;\n}\n.\\[\\&_ul\\]\\:mb-4 ul {\n margin-bottom: 1rem;\n}\n.\\[\\&_ul\\]\\:list-disc ul {\n list-style-type: disc;\n}\n.\\[\\&_ul\\]\\:pl-6 ul {\n padding-left: 1.5rem;\n}\n');
|
|
1746
|
+
styleInject('*,\n::before,\n::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n*,\n::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: #e5e7eb;\n}\n::before,\n::after {\n --tw-content: "";\n}\nhtml,\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--font-sans);\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n}\nbody {\n margin: 0;\n line-height: inherit;\n}\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nb,\nstrong {\n font-weight: bolder;\n}\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--font-mono);\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-size: 1em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\ninput:where([type="button"]),\ninput:where([type="reset"]),\ninput:where([type="submit"]) {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n}\n:-moz-focusring {\n outline: auto;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\nprogress {\n vertical-align: baseline;\n}\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\nsummary {\n display: list-item;\n}\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nlegend {\n padding: 0;\n}\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\ndialog {\n padding: 0;\n}\ntextarea {\n resize: vertical;\n}\ninput::-moz-placeholder,\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nbutton,\n[role=button] {\n cursor: pointer;\n}\n:disabled {\n cursor: default;\n}\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n[hidden]:where(:not([hidden="until-found"])) {\n display: none;\n}\n:root {\n --bg-base: var(--background);\n --bg-subtle: var(--gray-50);\n --bg-muted: var(--gray-100);\n --bg-emphasis: var(--gray-200);\n --bg-inverse: var(--foreground);\n --surface-base: var(--background);\n --surface-overlay: var(--gray-50);\n --surface-raised: var(--background);\n --surface-sunken: var(--gray-100);\n --text-primary: var(--foreground);\n --text-secondary: var(--gray-600);\n --text-tertiary: var(--gray-500);\n --text-disabled: var(--gray-400);\n --text-inverse: var(--background);\n --text-link: var(--primary);\n --text-link-hover: var(--primary-hover);\n --brand-primary: var(--primary);\n --brand-primary-hover: var(--primary-hover);\n --brand-primary-active: var(--primary-active);\n --brand-secondary: var(--secondary);\n --state-hover: var(--gray-100);\n --state-active: var(--gray-200);\n --state-selected: var(--primary);\n --state-disabled: var(--gray-300);\n --state-focus: var(--primary);\n --feedback-success: var(--success);\n --feedback-success-light: 142 71% 95%;\n --feedback-success-dark: 142 71% 35%;\n --feedback-warning: var(--warning);\n --feedback-warning-light: 38 92% 95%;\n --feedback-warning-dark: 38 92% 40%;\n --feedback-error: var(--error);\n --feedback-error-light: 0 84% 95%;\n --feedback-error-dark: 0 84% 50%;\n --feedback-info: 217 91% 60%;\n --feedback-info-light: 217 91% 95%;\n --feedback-info-dark: 217 91% 50%;\n --border-default: var(--border);\n --border-subtle: var(--gray-200);\n --border-strong: var(--gray-400);\n --border-interactive: var(--primary);\n --border-error: var(--error);\n --border-success: var(--success);\n --border-warning: var(--warning);\n --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --shadow-primary: 0 4px 14px 0 hsl(var(--primary) / 0.3);\n --shadow-success: 0 4px 14px 0 hsl(var(--success) / 0.3);\n --shadow-error: 0 4px 14px 0 hsl(var(--error) / 0.3);\n --shadow-warning: 0 4px 14px 0 hsl(var(--warning) / 0.3);\n --shadow-inner-xs: inset 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow-inner-sm: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --shadow-inner-md: inset 0 4px 6px -1px rgb(0 0 0 / 0.1);\n --ease-linear: linear;\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --ease-back-in: cubic-bezier(0.6, -0.28, 0.735, 0.045);\n --ease-back-out: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n --ease-back-in-out: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --duration-instant: 0ms;\n --duration-fast: 150ms;\n --duration-normal: 250ms;\n --duration-slow: 350ms;\n --duration-slower: 500ms;\n --duration-slowest: 750ms;\n --space-0: 0;\n --space-px: 1px;\n --space-0\\.5: 0.125rem;\n --space-1: 0.25rem;\n --space-1\\.5: 0.375rem;\n --space-2: 0.5rem;\n --space-2\\.5: 0.625rem;\n --space-3: 0.75rem;\n --space-3\\.5: 0.875rem;\n --space-4: 1rem;\n --space-5: 1.25rem;\n --space-6: 1.5rem;\n --space-7: 1.75rem;\n --space-8: 2rem;\n --space-9: 2.25rem;\n --space-10: 2.5rem;\n --space-11: 2.75rem;\n --space-12: 3rem;\n --space-14: 3.5rem;\n --space-16: 4rem;\n --space-20: 5rem;\n --space-24: 6rem;\n --space-28: 7rem;\n --space-32: 8rem;\n --space-36: 9rem;\n --space-40: 10rem;\n --space-44: 11rem;\n --space-48: 12rem;\n --space-52: 13rem;\n --space-56: 14rem;\n --space-60: 15rem;\n --space-64: 16rem;\n --space-72: 18rem;\n --space-80: 20rem;\n --space-96: 24rem;\n --text-2xs: 0.625rem;\n --text-xs: 0.75rem;\n --text-sm: 0.875rem;\n --text-base: 1rem;\n --text-lg: 1.125rem;\n --text-xl: 1.25rem;\n --text-2xl: 1.5rem;\n --text-3xl: 1.875rem;\n --text-4xl: 2.25rem;\n --text-5xl: 3rem;\n --text-6xl: 3.75rem;\n --text-7xl: 4.5rem;\n --text-8xl: 6rem;\n --text-9xl: 8rem;\n --leading-none: 1;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --leading-loose: 2;\n --tracking-tighter: -0.05em;\n --tracking-tight: -0.025em;\n --tracking-normal: 0;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --font-thin: 100;\n --font-extralight: 200;\n --font-light: 300;\n --font-normal: 400;\n --font-medium: 500;\n --font-semibold: 600;\n --font-bold: 700;\n --font-extrabold: 800;\n --font-black: 900;\n --radius-none: 0;\n --radius-sm: 0.125rem;\n --radius-base: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --radius-full: 9999px;\n --z-0: 0;\n --z-10: 10;\n --z-20: 20;\n --z-30: 30;\n --z-40: 40;\n --z-50: 50;\n --z-dropdown: 1000;\n --z-sticky: 1020;\n --z-fixed: 1030;\n --z-modal-backdrop: 1040;\n --z-modal: 1050;\n --z-popover: 1060;\n --z-tooltip: 1070;\n --z-notification: 1080;\n --blur-none: 0;\n --blur-sm: 4px;\n --blur-base: 8px;\n --blur-md: 12px;\n --blur-lg: 16px;\n --blur-xl: 24px;\n --blur-2xl: 40px;\n --blur-3xl: 64px;\n}\n.dark {\n --bg-base: var(--background);\n --bg-subtle: var(--gray-800);\n --bg-muted: var(--gray-700);\n --bg-emphasis: var(--gray-600);\n --surface-overlay: var(--gray-800);\n --surface-raised: var(--gray-800);\n --surface-sunken: var(--background);\n --text-secondary: var(--gray-400);\n --text-tertiary: var(--gray-500);\n --text-disabled: var(--gray-600);\n --state-hover: var(--gray-700);\n --state-active: var(--gray-600);\n --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.3);\n --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.3);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.3);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.5);\n}\n.container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 1rem;\n padding-left: 1rem;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n padding-right: 2rem;\n padding-left: 2rem;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n padding-right: 4rem;\n padding-left: 4rem;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n padding-right: 5rem;\n padding-left: 5rem;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n padding-right: 6rem;\n padding-left: 6rem;\n }\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.collapse {\n visibility: collapse;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.bottom-2 {\n bottom: 0.5rem;\n}\n.bottom-4 {\n bottom: 1rem;\n}\n.bottom-\\[5\\%\\] {\n bottom: 5%;\n}\n.left-2 {\n left: 0.5rem;\n}\n.left-3 {\n left: 0.75rem;\n}\n.left-4 {\n left: 1rem;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-1 {\n right: 0.25rem;\n}\n.right-2 {\n right: 0.5rem;\n}\n.right-3 {\n right: 0.75rem;\n}\n.right-4 {\n right: 1rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-1 {\n top: 0.25rem;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-2 {\n top: 0.5rem;\n}\n.top-2\\.5 {\n top: 0.625rem;\n}\n.top-4 {\n top: 1rem;\n}\n.top-\\[5\\%\\] {\n top: 5%;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.top-auto {\n top: auto;\n}\n.-z-10 {\n z-index: -10;\n}\n.z-0 {\n z-index: 0;\n}\n.z-10 {\n z-index: 10;\n}\n.z-40 {\n z-index: 40;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[-1\\] {\n z-index: -1;\n}\n.z-\\[100\\] {\n z-index: 100;\n}\n.col-span-1 {\n grid-column: span 1 / span 1;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.col-span-3 {\n grid-column: span 3 / span 3;\n}\n.col-span-4 {\n grid-column: span 4 / span 4;\n}\n.-m-2 {\n margin: -0.5rem;\n}\n.-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.-mx-4 {\n margin-left: -1rem;\n margin-right: -1rem;\n}\n.mx-1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.-mb-4 {\n margin-bottom: -1rem;\n}\n.-mr-1 {\n margin-right: -0.25rem;\n}\n.-mt-4 {\n margin-top: -1rem;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-8 {\n margin-bottom: 2rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mr-1 {\n margin-right: 0.25rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mr-auto {\n margin-right: auto;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.\\!table {\n display: table !important;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.h-0 {\n height: 0px;\n}\n.h-1 {\n height: 0.25rem;\n}\n.h-1\\.5 {\n height: 0.375rem;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-12 {\n height: 3rem;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-16 {\n height: 4rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-20 {\n height: 5rem;\n}\n.h-24 {\n height: 6rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-32 {\n height: 8rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-48 {\n height: 12rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-96 {\n height: 24rem;\n}\n.h-\\[0\\.5px\\] {\n height: 0.5px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[2px\\] {\n height: 2px;\n}\n.h-\\[65\\%\\] {\n height: 65%;\n}\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.h-auto {\n height: auto;\n}\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n.h-full {\n height: 100%;\n}\n.h-px {\n height: 1px;\n}\n.max-h-32 {\n max-height: 8rem;\n}\n.max-h-96 {\n max-height: 24rem;\n}\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n.max-h-\\[95vh\\] {\n max-height: 95vh;\n}\n.max-h-full {\n max-height: 100%;\n}\n.max-h-screen {\n max-height: 100vh;\n}\n.min-h-32 {\n min-height: 8rem;\n}\n.min-h-\\[200px\\] {\n min-height: 200px;\n}\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n.w-0 {\n width: 0px;\n}\n.w-0\\.5 {\n width: 0.125rem;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-1\\/4 {\n width: 25%;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-11 {\n width: 2.75rem;\n}\n.w-12 {\n width: 3rem;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-16 {\n width: 4rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\/3 {\n width: 66.666667%;\n}\n.w-20 {\n width: 5rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-3\\/4 {\n width: 75%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-48 {\n width: 12rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-56 {\n width: 14rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-64 {\n width: 16rem;\n}\n.w-72 {\n width: 18rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-80 {\n width: 20rem;\n}\n.w-96 {\n width: 24rem;\n}\n.w-\\[0\\.5px\\] {\n width: 0.5px;\n}\n.w-\\[100px\\] {\n width: 100px;\n}\n.w-\\[1px\\] {\n width: 1px;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-\\[65\\%\\] {\n width: 65%;\n}\n.w-\\[70px\\] {\n width: 70px;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-px {\n width: 1px;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-32 {\n min-width: 8rem;\n}\n.min-w-\\[4px\\] {\n min-width: 4px;\n}\n.min-w-\\[70px\\] {\n min-width: 70px;\n}\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-4xl {\n max-width: 56rem;\n}\n.max-w-6xl {\n max-width: 72rem;\n}\n.max-w-\\[95vw\\] {\n max-width: 95vw;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.max-w-none {\n max-width: none;\n}\n.max-w-sm {\n max-width: 24rem;\n}\n.max-w-xs {\n max-width: 20rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.grow {\n flex-grow: 1;\n}\n.-translate-x-2 {\n --tw-translate-x: -0.5rem;\n 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));\n}\n.-translate-x-full {\n --tw-translate-x: -100%;\n 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));\n}\n.-translate-y-0 {\n --tw-translate-y: -0px;\n 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));\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n 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));\n}\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n 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));\n}\n.translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n 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));\n}\n.translate-y-0 {\n --tw-translate-y: 0px;\n 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));\n}\n.translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n 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));\n}\n.rotate-2 {\n --tw-rotate: 2deg;\n 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));\n}\n.rotate-\\[-15deg\\] {\n --tw-rotate: -15deg;\n 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));\n}\n.rotate-\\[15deg\\] {\n --tw-rotate: 15deg;\n 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));\n}\n.scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n 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));\n}\n.scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n 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));\n}\n.transform {\n 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));\n}\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-grab {\n cursor: grab;\n}\n.cursor-grabbing {\n cursor: grabbing;\n}\n.cursor-help {\n cursor: help;\n}\n.cursor-move {\n cursor: move;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-text {\n cursor: text;\n}\n.cursor-wait {\n cursor: wait;\n}\n.touch-none {\n touch-action: none;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.resize {\n resize: both;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n.grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-6 {\n gap: 1.5rem;\n}\n.gap-8 {\n gap: 2rem;\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-3xl {\n border-radius: 1.5rem;\n}\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n.rounded-\\[var\\(--login-border-radius\\)\\] {\n border-radius: var(--login-border-radius);\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius);\n}\n.rounded-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.rounded-t {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-l-0 {\n border-left-width: 0px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-l-4 {\n border-left-width: 4px;\n}\n.border-l-\\[0\\.5px\\] {\n border-left-width: 0.5px;\n}\n.border-r-0 {\n border-right-width: 0px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-t-0 {\n border-top-width: 0px;\n}\n.border-t-2 {\n border-top-width: 2px;\n}\n.border-t-\\[0\\.5px\\] {\n border-top-width: 0.5px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-dotted {\n border-style: dotted;\n}\n.border-none {\n border-style: none;\n}\n.border-accent {\n --tw-border-opacity: 1;\n border-color: hsl(var(--accent) / var(--tw-border-opacity, 1));\n}\n.border-blue-200 {\n --tw-border-opacity: 1;\n border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));\n}\n.border-blue-600 {\n --tw-border-opacity: 1;\n border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));\n}\n.border-border {\n --tw-border-opacity: 1;\n border-color: hsl(var(--border) / var(--tw-border-opacity, 1));\n}\n.border-border\\/50 {\n border-color: hsl(var(--border) / 0.5);\n}\n.border-destructive {\n --tw-border-opacity: 1;\n border-color: hsl(var(--destructive) / var(--tw-border-opacity, 1));\n}\n.border-error {\n --tw-border-opacity: 1;\n border-color: hsl(var(--error) / var(--tw-border-opacity, 1));\n}\n.border-error\\/20 {\n border-color: hsl(var(--error) / 0.2);\n}\n.border-foreground {\n --tw-border-opacity: 1;\n border-color: hsl(var(--foreground) / var(--tw-border-opacity, 1));\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.border-gray-400 {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.border-gray-900 {\n --tw-border-opacity: 1;\n border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));\n}\n.border-green-200 {\n --tw-border-opacity: 1;\n border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));\n}\n.border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));\n}\n.border-green-600 {\n --tw-border-opacity: 1;\n border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));\n}\n.border-input {\n --tw-border-opacity: 1;\n border-color: hsl(var(--input) / var(--tw-border-opacity, 1));\n}\n.border-muted-foreground\\/20 {\n border-color: hsl(var(--muted-foreground) / 0.2);\n}\n.border-muted-foreground\\/25 {\n border-color: hsl(var(--muted-foreground) / 0.25);\n}\n.border-orange-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));\n}\n.border-primary {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\n}\n.border-primary\\/50 {\n border-color: hsl(var(--primary) / 0.5);\n}\n.border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));\n}\n.border-secondary {\n --tw-border-opacity: 1;\n border-color: hsl(var(--secondary) / var(--tw-border-opacity, 1));\n}\n.border-success {\n --tw-border-opacity: 1;\n border-color: hsl(var(--success) / var(--tw-border-opacity, 1));\n}\n.border-success\\/40 {\n border-color: hsl(var(--success) / 0.4);\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-warning {\n --tw-border-opacity: 1;\n border-color: hsl(var(--warning) / var(--tw-border-opacity, 1));\n}\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n.border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.border-yellow-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));\n}\n.border-yellow-500 {\n --tw-border-opacity: 1;\n border-color: rgb(234 179 8 / var(--tw-border-opacity, 1));\n}\n.border-yellow-600 {\n --tw-border-opacity: 1;\n border-color: rgb(202 138 4 / var(--tw-border-opacity, 1));\n}\n.border-t-primary {\n --tw-border-opacity: 1;\n border-top-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.border-t-transparent {\n border-top-color: transparent;\n}\n.bg-\\[var\\(--login-background\\)\\] {\n background-color: var(--login-background);\n}\n.bg-\\[var\\(--login-primary\\)\\] {\n background-color: var(--login-primary);\n}\n.bg-accent {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.bg-accent\\/20 {\n background-color: hsl(var(--accent) / 0.2);\n}\n.bg-background {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.bg-background\\/80 {\n background-color: hsl(var(--background) / 0.8);\n}\n.bg-background\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.bg-black\\/0 {\n background-color: rgb(0 0 0 / 0);\n}\n.bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.bg-black\\/40 {\n background-color: rgb(0 0 0 / 0.4);\n}\n.bg-black\\/5 {\n background-color: rgb(0 0 0 / 0.05);\n}\n.bg-black\\/60 {\n background-color: rgb(0 0 0 / 0.6);\n}\n.bg-black\\/80 {\n background-color: rgb(0 0 0 / 0.8);\n}\n.bg-black\\/90 {\n background-color: rgb(0 0 0 / 0.9);\n}\n.bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.bg-border {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--border) / var(--tw-bg-opacity, 1));\n}\n.bg-card {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--card) / var(--tw-bg-opacity, 1));\n}\n.bg-destructive {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.bg-destructive\\/5 {\n background-color: hsl(var(--destructive) / 0.05);\n}\n.bg-error {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--error) / var(--tw-bg-opacity, 1));\n}\n.bg-error\\/20 {\n background-color: hsl(var(--error) / 0.2);\n}\n.bg-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));\n}\n.bg-green-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n.bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));\n}\n.bg-green-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\n}\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.bg-muted {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.bg-muted\\/20 {\n background-color: hsl(var(--muted) / 0.2);\n}\n.bg-muted\\/50 {\n background-color: hsl(var(--muted) / 0.5);\n}\n.bg-muted\\/80 {\n background-color: hsl(var(--muted) / 0.8);\n}\n.bg-orange-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));\n}\n.bg-popover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--popover) / var(--tw-bg-opacity, 1));\n}\n.bg-primary {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.bg-primary-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-primary\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.bg-primary\\/20 {\n background-color: hsl(var(--primary) / 0.2);\n}\n.bg-primary\\/30 {\n background-color: hsl(var(--primary) / 0.3);\n}\n.bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.bg-purple-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));\n}\n.bg-purple-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));\n}\n.bg-red-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.bg-secondary {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.bg-secondary-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-secondary\\/20 {\n background-color: hsl(var(--secondary) / 0.2);\n}\n.bg-success {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.bg-success\\/20 {\n background-color: hsl(var(--success) / 0.2);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-warning {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.bg-warning\\/20 {\n background-color: hsl(var(--warning) / 0.2);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-white\\/30 {\n background-color: rgb(255 255 255 / 0.3);\n}\n.bg-white\\/80 {\n background-color: rgb(255 255 255 / 0.8);\n}\n.bg-yellow-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));\n}\n.bg-opacity-80 {\n --tw-bg-opacity: 0.8;\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.from-black\\/80 {\n --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-blue-600 {\n --tw-gradient-from: #2563eb var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary\\/5 {\n --tw-gradient-from: hsl(var(--primary) / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-purple-600 {\n --tw-gradient-from: #9333ea var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-white\\/20 {\n --tw-gradient-from: rgb(255 255 255 / 0.2) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-white\\/5 {\n --tw-gradient-from: rgb(255 255 255 / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.via-border {\n --tw-gradient-to: hsl(var(--border) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--border) / 1) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-gray-900\\/80 {\n --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n rgb(17 24 39 / 0.8) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-transparent {\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n transparent var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-white\\/20 {\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n rgb(255 255 255 / 0.2) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.to-black\\/5 {\n --tw-gradient-to: rgb(0 0 0 / 0.05) var(--tw-gradient-to-position);\n}\n.to-black\\/80 {\n --tw-gradient-to: rgb(0 0 0 / 0.8) var(--tw-gradient-to-position);\n}\n.to-pink-600 {\n --tw-gradient-to: #db2777 var(--tw-gradient-to-position);\n}\n.to-primary\\/10 {\n --tw-gradient-to: hsl(var(--primary) / 0.1) var(--tw-gradient-to-position);\n}\n.to-purple-600 {\n --tw-gradient-to: #9333ea var(--tw-gradient-to-position);\n}\n.to-transparent {\n --tw-gradient-to: transparent var(--tw-gradient-to-position);\n}\n.to-white\\/0 {\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n}\n.fill-current {\n fill: currentColor;\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-7 {\n padding: 1.75rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pb-3 {\n padding-bottom: 0.75rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.pl-10 {\n padding-left: 2.5rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-7 {\n padding-left: 1.75rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-9 {\n padding-left: 2.25rem;\n}\n.pr-10 {\n padding-right: 2.5rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-8 {\n padding-right: 2rem;\n}\n.pt-0 {\n padding-top: 0px;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.pt-6 {\n padding-top: 1.5rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-mono {\n font-family: var(--font-mono);\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.capitalize {\n text-transform: capitalize;\n}\n.italic {\n font-style: italic;\n}\n.leading-none {\n line-height: 1;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.leading-snug {\n line-height: 1.375;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-\\[var\\(--login-primary\\)\\] {\n color: var(--login-primary);\n}\n.text-\\[var\\(--login-text\\)\\] {\n color: var(--login-text);\n}\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.text-blue-600 {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\n}\n.text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\n}\n.text-blue-900 {\n --tw-text-opacity: 1;\n color: rgb(30 58 138 / var(--tw-text-opacity, 1));\n}\n.text-card-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--card-foreground) / var(--tw-text-opacity, 1));\n}\n.text-current {\n color: currentColor;\n}\n.text-destructive {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive) / var(--tw-text-opacity, 1));\n}\n.text-destructive-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.text-error {\n --tw-text-opacity: 1;\n color: hsl(var(--error) / var(--tw-text-opacity, 1));\n}\n.text-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.text-foreground\\/50 {\n color: hsl(var(--foreground) / 0.5);\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\n}\n.text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\n}\n.text-green-800 {\n --tw-text-opacity: 1;\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\n}\n.text-green-900 {\n --tw-text-opacity: 1;\n color: rgb(20 83 45 / var(--tw-text-opacity, 1));\n}\n.text-muted-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\n}\n.text-orange-800 {\n --tw-text-opacity: 1;\n color: rgb(154 52 18 / var(--tw-text-opacity, 1));\n}\n.text-orange-900 {\n --tw-text-opacity: 1;\n color: rgb(124 45 18 / var(--tw-text-opacity, 1));\n}\n.text-popover-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--popover-foreground) / var(--tw-text-opacity, 1));\n}\n.text-primary {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.text-primary-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.text-purple-500 {\n --tw-text-opacity: 1;\n color: rgb(168 85 247 / var(--tw-text-opacity, 1));\n}\n.text-purple-600 {\n --tw-text-opacity: 1;\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\n}\n.text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity, 1));\n}\n.text-secondary-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--secondary-foreground) / var(--tw-text-opacity, 1));\n}\n.text-success {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.text-warning {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.text-white\\/50 {\n color: rgb(255 255 255 / 0.5);\n}\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.text-yellow-600 {\n --tw-text-opacity: 1;\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\n}\n.text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\n}\n.text-yellow-800 {\n --tw-text-opacity: 1;\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.opacity-\\[0\\.03\\] {\n opacity: 0.03;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-primary\\/50 {\n --tw-shadow-color: hsl(var(--primary) / 0.5);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-purple-500\\/25 {\n --tw-shadow-color: rgb(168 85 247 / 0.25);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.ring {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-gray-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));\n}\n.ring-offset-2 {\n --tw-ring-offset-width: 2px;\n}\n.ring-offset-background {\n --tw-ring-offset-color: hsl(var(--background) / 1);\n}\n.blur {\n --tw-blur: blur(8px);\n 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);\n}\n.blur-md {\n --tw-blur: blur(12px);\n 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);\n}\n.blur-xl {\n --tw-blur: blur(24px);\n 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);\n}\n.filter {\n 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);\n}\n.backdrop-blur-lg {\n --tw-backdrop-blur: blur(16px);\n -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);\n 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);\n}\n.backdrop-blur-md {\n --tw-backdrop-blur: blur(12px);\n -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);\n 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);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n -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);\n 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);\n}\n.backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\n -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);\n 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);\n}\n.transition {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n -webkit-backdrop-filter;\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter,\n -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-100 {\n transition-duration: 100ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.shadow-sm {\n box-shadow: var(--shadow-sm);\n}\n.shadow-md {\n box-shadow: var(--shadow-md);\n}\n.shadow-lg {\n box-shadow: var(--shadow-lg);\n}\n.shadow-xl {\n box-shadow: var(--shadow-xl);\n}\n.shadow-2xl {\n box-shadow: var(--shadow-2xl);\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n.transition-all {\n transition-property: all;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n}\n.transition-opacity {\n transition-property: opacity;\n}\n.transition-shadow {\n transition-property: box-shadow;\n}\n.transition-transform {\n transition-property: transform;\n}\n.ease-out {\n transition-timing-function: var(--ease-out);\n}\n:root {\n --primary-50: 240 249 255;\n --primary-100: 224 242 254;\n --primary-200: 186 230 253;\n --primary-300: 125 211 252;\n --primary-400: 56 189 248;\n --primary-500: 14 165 233;\n --primary-600: 2 132 199;\n --primary-700: 3 105 161;\n --primary-800: 7 89 133;\n --primary-900: 12 74 110;\n --primary-950: 8 47 73;\n --secondary-50: 248 250 252;\n --secondary-100: 241 245 249;\n --secondary-200: 226 232 240;\n --secondary-300: 203 213 225;\n --secondary-400: 148 163 184;\n --secondary-500: 100 116 139;\n --secondary-600: 71 85 105;\n --secondary-700: 51 65 85;\n --secondary-800: 30 41 59;\n --secondary-900: 15 23 42;\n --secondary-950: 2 6 23;\n --success-50: 240 253 244;\n --success-100: 220 252 231;\n --success-200: 187 247 208;\n --success-300: 134 239 172;\n --success-400: 74 222 128;\n --success-500: 34 197 94;\n --success-600: 22 163 74;\n --success-700: 21 128 61;\n --success-800: 22 101 52;\n --success-900: 20 83 45;\n --success-950: 5 46 22;\n --warning-50: 254 252 232;\n --warning-100: 254 249 195;\n --warning-200: 254 240 138;\n --warning-300: 253 224 71;\n --warning-400: 250 204 21;\n --warning-500: 234 179 8;\n --warning-600: 202 138 4;\n --warning-700: 161 98 7;\n --warning-800: 133 77 14;\n --warning-900: 113 63 18;\n --warning-950: 66 32 6;\n --error-50: 254 242 242;\n --error-100: 254 226 226;\n --error-200: 254 202 202;\n --error-300: 252 165 165;\n --error-400: 248 113 113;\n --error-500: 239 68 68;\n --error-600: 220 38 38;\n --error-700: 185 28 28;\n --error-800: 153 27 27;\n --error-900: 127 29 29;\n --error-950: 69 10 10;\n --background: 0 0% 100%;\n --foreground: 222.2 47.4% 11.2%;\n --card: 0 0% 100%;\n --card-foreground: 222.2 47.4% 11.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 47.4% 11.2%;\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n --secondary: 210 40% 96%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n --muted: 210 40% 96%;\n --muted-foreground: 215.4 16.3% 46.9%;\n --accent: 210 40% 96%;\n --accent-foreground: 222.2 47.4% 11.2%;\n --destructive: 0 100% 50%;\n --destructive-foreground: 210 40% 98%;\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n --ring: 215 20.2% 65.1%;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n --font-sans:\n "Inter",\n -apple-system,\n BlinkMacSystemFont,\n "Segoe UI",\n Roboto,\n "Helvetica Neue",\n Arial,\n sans-serif;\n --font-serif:\n "Crimson Text",\n Georgia,\n "Times New Roman",\n serif;\n --font-mono:\n "JetBrains Mono",\n "Fira Code",\n "Consolas",\n monospace;\n --text-xs: 0.75rem;\n --text-sm: 0.875rem;\n --text-base: 1rem;\n --text-lg: 1.125rem;\n --text-xl: 1.25rem;\n --text-2xl: 1.5rem;\n --text-3xl: 1.875rem;\n --text-4xl: 2.25rem;\n --text-5xl: 3rem;\n --text-6xl: 3.75rem;\n --text-7xl: 4.5rem;\n --text-8xl: 6rem;\n --text-9xl: 8rem;\n --leading-none: 1;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --leading-loose: 2;\n --font-thin: 100;\n --font-extralight: 200;\n --font-light: 300;\n --font-normal: 400;\n --font-medium: 500;\n --font-semibold: 600;\n --font-bold: 700;\n --font-extrabold: 800;\n --font-black: 900;\n --spacing-0: 0;\n --spacing-px: 1px;\n --spacing-0-5: 0.125rem;\n --spacing-1: 0.25rem;\n --spacing-1-5: 0.375rem;\n --spacing-2: 0.5rem;\n --spacing-2-5: 0.625rem;\n --spacing-3: 0.75rem;\n --spacing-3-5: 0.875rem;\n --spacing-4: 1rem;\n --spacing-5: 1.25rem;\n --spacing-6: 1.5rem;\n --spacing-7: 1.75rem;\n --spacing-8: 2rem;\n --spacing-9: 2.25rem;\n --spacing-10: 2.5rem;\n --spacing-11: 2.75rem;\n --spacing-12: 3rem;\n --spacing-14: 3.5rem;\n --spacing-16: 4rem;\n --spacing-20: 5rem;\n --spacing-24: 6rem;\n --spacing-28: 7rem;\n --spacing-32: 8rem;\n --spacing-36: 9rem;\n --spacing-40: 10rem;\n --spacing-44: 11rem;\n --spacing-48: 12rem;\n --spacing-52: 13rem;\n --spacing-56: 14rem;\n --spacing-60: 15rem;\n --spacing-64: 16rem;\n --spacing-72: 18rem;\n --spacing-80: 20rem;\n --spacing-96: 24rem;\n --radius-none: 0;\n --radius-sm: 0.125rem;\n --radius-base: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --radius-full: 9999px;\n --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);\n --shadow-none: 0 0 #0000;\n --elevation-0: var(--shadow-none);\n --elevation-1: var(--shadow-sm);\n --elevation-2: var(--shadow-base);\n --elevation-3: var(--shadow-md);\n --elevation-4: var(--shadow-lg);\n --elevation-5: var(--shadow-xl);\n --elevation-6: var(--shadow-2xl);\n --duration-75: 75ms;\n --duration-100: 100ms;\n --duration-150: 150ms;\n --duration-200: 200ms;\n --duration-300: 300ms;\n --duration-500: 500ms;\n --duration-700: 700ms;\n --duration-1000: 1000ms;\n --ease-linear: linear;\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n --animate-fade-in: fadeIn var(--duration-300) var(--ease-out);\n --animate-fade-out: fadeOut var(--duration-300) var(--ease-in);\n --animate-slide-in-up: slideInUp var(--duration-300) var(--ease-out);\n --animate-slide-in-down: slideInDown var(--duration-300) var(--ease-out);\n --animate-slide-in-left: slideInLeft var(--duration-300) var(--ease-out);\n --animate-slide-in-right: slideInRight var(--duration-300) var(--ease-out);\n --animate-scale-in: scaleIn var(--duration-200) var(--ease-out);\n --animate-scale-out: scaleOut var(--duration-200) var(--ease-in);\n --animate-bounce: bounce var(--duration-500) var(--ease-bounce);\n --animate-pulse: pulse var(--duration-1000) var(--ease-in-out) infinite;\n --animate-spin: spin var(--duration-1000) var(--ease-linear) infinite;\n --breakpoint-sm: 640px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --container-sm: 640px;\n --container-md: 768px;\n --container-lg: 1024px;\n --container-xl: 1280px;\n --container-2xl: 1536px;\n --z-0: 0;\n --z-10: 10;\n --z-20: 20;\n --z-30: 30;\n --z-40: 40;\n --z-50: 50;\n --z-auto: auto;\n --z-dropdown: 1000;\n --z-sticky: 1020;\n --z-fixed: 1030;\n --z-modal-backdrop: 1040;\n --z-modal: 1050;\n --z-popover: 1060;\n --z-tooltip: 1070;\n --z-toast: 1080;\n --button-height-sm: 2rem;\n --button-height-md: 2.5rem;\n --button-height-lg: 3rem;\n --button-height-xl: 3.5rem;\n --button-padding-sm: 0.5rem 0.75rem;\n --button-padding-md: 0.625rem 1rem;\n --button-padding-lg: 0.75rem 1.25rem;\n --button-padding-xl: 1rem 1.5rem;\n --button-font-size-sm: var(--text-sm);\n --button-font-size-md: var(--text-base);\n --button-font-size-lg: var(--text-lg);\n --button-font-size-xl: var(--text-xl);\n --input-height-sm: 2rem;\n --input-height-md: 2.5rem;\n --input-height-lg: 3rem;\n --input-height-xl: 3.5rem;\n --input-padding-sm: 0.5rem 0.75rem;\n --input-padding-md: 0.625rem 1rem;\n --input-padding-lg: 0.75rem 1.25rem;\n --input-padding-xl: 1rem 1.5rem;\n --input-border-width: 1px;\n --input-border-radius: var(--radius-md);\n --input-focus-ring-width: 2px;\n --input-focus-ring-offset: 2px;\n --card-padding-sm: 1rem;\n --card-padding-md: 1.5rem;\n --card-padding-lg: 2rem;\n --card-padding-xl: 2.5rem;\n --card-border-radius: var(--radius-lg);\n --card-border-width: 1px;\n --card-shadow: var(--elevation-1);\n --card-hover-shadow: var(--elevation-2);\n}\n.dark {\n --background: 224 71% 4%;\n --foreground: 213 31% 91%;\n --card: 224 71% 4%;\n --card-foreground: 213 31% 91%;\n --popover: 224 71% 4%;\n --popover-foreground: 213 31% 91%;\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 1.2%;\n --secondary: 222.2 84% 4.9%;\n --secondary-foreground: 210 40% 98%;\n --muted: 223 47% 11%;\n --muted-foreground: 215.4 16.3% 56.9%;\n --accent: 216 34% 17%;\n --accent-foreground: 210 40% 98%;\n --destructive: 0 63% 31%;\n --destructive-foreground: 210 40% 98%;\n --border: 216 34% 17%;\n --input: 216 34% 17%;\n --ring: 216 34% 17%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes slideInUp {\n from {\n transform: translateY(100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n@keyframes slideInDown {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n@keyframes slideInLeft {\n from {\n transform: translateX(-100%);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes slideInRight {\n from {\n transform: translateX(100%);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes scaleIn {\n from {\n transform: scale(0.95);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes scaleOut {\n from {\n transform: scale(1);\n opacity: 1;\n }\n to {\n transform: scale(0.95);\n opacity: 0;\n }\n}\n@keyframes bounce {\n 0%, 20%, 53%, 80%, 100% {\n transform: translate3d(0, 0, 0);\n }\n 40%, 43% {\n transform: translate3d(0, -30px, 0);\n }\n 70% {\n transform: translate3d(0, -15px, 0);\n }\n 90% {\n transform: translate3d(0, -4px, 0);\n }\n}\n@keyframes pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-fade-in {\n animation: var(--animate-fade-in);\n}\n.animate-fade-out {\n animation: var(--animate-fade-out);\n}\n.animate-slide-in-up {\n animation: var(--animate-slide-in-up);\n}\n.animate-slide-in-down {\n animation: var(--animate-slide-in-down);\n}\n.animate-slide-in-left {\n animation: var(--animate-slide-in-left);\n}\n.animate-slide-in-right {\n animation: var(--animate-slide-in-right);\n}\n.animate-scale-in {\n animation: var(--animate-scale-in);\n}\n.animate-scale-out {\n animation: var(--animate-scale-out);\n}\n.animate-bounce {\n animation: var(--animate-bounce);\n}\n.animate-pulse {\n animation: var(--animate-pulse);\n}\n.animate-spin {\n animation: var(--animate-spin);\n}\n@media (max-width: 639px) {\n .container {\n max-width: 100%;\n }\n}\n@media (min-width: 640px) {\n .container {\n max-width: var(--container-sm);\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: var(--container-md);\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: var(--container-lg);\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: var(--container-xl);\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: var(--container-2xl);\n }\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n@keyframes pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: .5;\n }\n}\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: translateY(0);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes slideIn {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes scaleIn {\n from {\n transform: scale(0.95);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n.file\\:border-0::file-selector-button {\n border-width: 0px;\n}\n.file\\:bg-transparent::file-selector-button {\n background-color: transparent;\n}\n.file\\:font-medium::file-selector-button {\n font-weight: 500;\n}\n.placeholder\\:text-muted-foreground::-moz-placeholder {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.placeholder\\:text-muted-foreground::placeholder {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:-translate-y-0\\.5:hover {\n --tw-translate-y: -0.125rem;\n 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));\n}\n.hover\\:rotate-90:hover {\n --tw-rotate: 90deg;\n 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));\n}\n.hover\\:scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n 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));\n}\n.hover\\:scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n 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));\n}\n.hover\\:border-error\\/80:hover {\n border-color: hsl(var(--error) / 0.8);\n}\n.hover\\:border-gray-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-gray-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-input\\/80:hover {\n border-color: hsl(var(--input) / 0.8);\n}\n.hover\\:border-muted-foreground\\/40:hover {\n border-color: hsl(var(--muted-foreground) / 0.4);\n}\n.hover\\:border-primary\\/20:hover {\n border-color: hsl(var(--primary) / 0.2);\n}\n.hover\\:border-primary\\/50:hover {\n border-color: hsl(var(--primary) / 0.5);\n}\n.hover\\:border-success\\/80:hover {\n border-color: hsl(var(--success) / 0.8);\n}\n.hover\\:border-white\\/30:hover {\n border-color: rgb(255 255 255 / 0.3);\n}\n.hover\\:bg-accent:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-background\\/90:hover {\n background-color: hsl(var(--background) / 0.9);\n}\n.hover\\:bg-black\\/10:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n.hover\\:bg-card\\/90:hover {\n background-color: hsl(var(--card) / 0.9);\n}\n.hover\\:bg-destructive\\/90:hover {\n background-color: hsl(var(--destructive) / 0.9);\n}\n.hover\\:bg-error\\/90:hover {\n background-color: hsl(var(--error) / 0.9);\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-100\\/50:hover {\n background-color: rgb(243 244 246 / 0.5);\n}\n.hover\\:bg-gray-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-green-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted\\/30:hover {\n background-color: hsl(var(--muted) / 0.3);\n}\n.hover\\:bg-muted\\/50:hover {\n background-color: hsl(var(--muted) / 0.5);\n}\n.hover\\:bg-muted\\/80:hover {\n background-color: hsl(var(--muted) / 0.8);\n}\n.hover\\:bg-primary:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-primary\\/20:hover {\n background-color: hsl(var(--primary) / 0.2);\n}\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n.hover\\:bg-purple-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(233 213 255 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-secondary:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-secondary\\/80:hover {\n background-color: hsl(var(--secondary) / 0.8);\n}\n.hover\\:bg-success\\/90:hover {\n background-color: hsl(var(--success) / 0.9);\n}\n.hover\\:bg-warning\\/90:hover {\n background-color: hsl(var(--warning) / 0.9);\n}\n.hover\\:bg-white\\/20:hover {\n background-color: rgb(255 255 255 / 0.2);\n}\n.hover\\:bg-yellow-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));\n}\n.hover\\:from-blue-700:hover {\n --tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:from-purple-700:hover {\n --tw-gradient-from: #7e22ce var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:to-pink-700:hover {\n --tw-gradient-to: #be185d var(--tw-gradient-to-position);\n}\n.hover\\:to-purple-700:hover {\n --tw-gradient-to: #7e22ce var(--tw-gradient-to-position);\n}\n.hover\\:text-accent-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-primary-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.hover\\:opacity-90:hover {\n opacity: 0.9;\n}\n.hover\\:shadow-\\[0_0_20px_rgba\\(var\\(--primary\\)\\,0\\.5\\)\\]:hover {\n --tw-shadow: 0 0 20px rgba(var(--primary),0.5);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-lg:hover {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-xl:hover {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-primary\\/20:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:shadow-primary\\/60:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.6);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:brightness-110:hover {\n --tw-brightness: brightness(1.1);\n 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);\n}\n.hover\\:shadow-md:hover {\n box-shadow: var(--shadow-md);\n}\n.hover\\:shadow-lg:hover {\n box-shadow: var(--shadow-lg);\n}\n.hover\\:shadow-xl:hover {\n box-shadow: var(--shadow-xl);\n}\n.focus\\:bg-accent:focus {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-error\\/10:focus {\n background-color: hsl(var(--error) / 0.1);\n}\n.focus\\:bg-gray-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-success\\/10:focus {\n background-color: hsl(var(--success) / 0.1);\n}\n.focus\\:bg-warning\\/10:focus {\n background-color: hsl(var(--warning) / 0.1);\n}\n.focus\\:text-accent-foreground:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-error:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--error) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-foreground:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-success:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-warning:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.focus\\:opacity-100:focus {\n opacity: 1;\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-\\[var\\(--login-primary\\)\\]:focus {\n --tw-ring-color: var(--login-primary);\n}\n.focus\\:ring-primary\\/30:focus {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.focus\\:ring-ring:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:border-2:focus-visible {\n border-width: 2px;\n}\n.focus-visible\\:border-b-2:focus-visible {\n border-bottom-width: 2px;\n}\n.focus-visible\\:border-error:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--error) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:border-primary:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:border-success:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--success) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:bg-transparent:focus-visible {\n background-color: transparent;\n}\n.focus-visible\\:shadow-lg:focus-visible {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.focus-visible\\:shadow-primary\\/30:focus-visible {\n --tw-shadow-color: hsl(var(--primary) / 0.3);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ring-0:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-destructive\\/30:focus-visible {\n --tw-ring-color: hsl(var(--destructive) / 0.3);\n}\n.focus-visible\\:ring-error\\/30:focus-visible {\n --tw-ring-color: hsl(var(--error) / 0.3);\n}\n.focus-visible\\:ring-error\\/50:focus-visible {\n --tw-ring-color: hsl(var(--error) / 0.5);\n}\n.focus-visible\\:ring-gray-400\\/30:focus-visible {\n --tw-ring-color: rgb(156 163 175 / 0.3);\n}\n.focus-visible\\:ring-green-500\\/30:focus-visible {\n --tw-ring-color: rgb(34 197 94 / 0.3);\n}\n.focus-visible\\:ring-primary\\/30:focus-visible {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.focus-visible\\:ring-primary\\/50:focus-visible {\n --tw-ring-color: hsl(var(--primary) / 0.5);\n}\n.focus-visible\\:ring-purple-400\\/30:focus-visible {\n --tw-ring-color: rgb(192 132 252 / 0.3);\n}\n.focus-visible\\:ring-purple-500\\/50:focus-visible {\n --tw-ring-color: rgb(168 85 247 / 0.5);\n}\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.focus-visible\\:ring-success\\/30:focus-visible {\n --tw-ring-color: hsl(var(--success) / 0.3);\n}\n.focus-visible\\:ring-success\\/50:focus-visible {\n --tw-ring-color: hsl(var(--success) / 0.5);\n}\n.focus-visible\\:ring-warning\\/30:focus-visible {\n --tw-ring-color: hsl(var(--warning) / 0.3);\n}\n.focus-visible\\:ring-white\\/50:focus-visible {\n --tw-ring-color: rgb(255 255 255 / 0.5);\n}\n.focus-visible\\:ring-yellow-500\\/30:focus-visible {\n --tw-ring-color: rgb(234 179 8 / 0.3);\n}\n.focus-visible\\:ring-offset-1:focus-visible {\n --tw-ring-offset-width: 1px;\n}\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:ring-offset-background:focus-visible {\n --tw-ring-offset-color: hsl(var(--background) / 1);\n}\n.focus-visible\\:shadow-lg:focus-visible {\n box-shadow: var(--shadow-lg);\n}\n.active\\:translate-y-0:active {\n --tw-translate-y: 0px;\n 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));\n}\n.active\\:translate-y-0\\.5:active {\n --tw-translate-y: 0.125rem;\n 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));\n}\n.active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n 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));\n}\n.active\\:cursor-grabbing:active {\n cursor: grabbing;\n}\n.active\\:bg-error\\/80:active {\n background-color: hsl(var(--error) / 0.8);\n}\n.active\\:bg-gray-100:active {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-gray-200:active {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-gray-300:active {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-primary\\/30:active {\n background-color: hsl(var(--primary) / 0.3);\n}\n.active\\:bg-success\\/80:active {\n background-color: hsl(var(--success) / 0.8);\n}\n.active\\:bg-white\\/30:active {\n background-color: rgb(255 255 255 / 0.3);\n}\n.active\\:from-blue-800:active {\n --tw-gradient-from: #1e40af var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(30 64 175 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.active\\:to-purple-800:active {\n --tw-gradient-to: #6b21a8 var(--tw-gradient-to-position);\n}\n.active\\:shadow-\\[0_0_10px_rgba\\(var\\(--primary\\)\\,0\\.3\\)\\]:active {\n --tw-shadow: 0 0 10px rgba(var(--primary),0.3);\n --tw-shadow-colored: 0 0 10px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-md:active {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-sm:active {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-primary\\/40:active {\n --tw-shadow-color: hsl(var(--primary) / 0.4);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.active\\:brightness-90:active {\n --tw-brightness: brightness(.9);\n 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);\n}\n.active\\:brightness-95:active {\n --tw-brightness: brightness(.95);\n 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);\n}\n.active\\:shadow-sm:active {\n box-shadow: var(--shadow-sm);\n}\n.active\\:shadow-md:active {\n box-shadow: var(--shadow-md);\n}\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.group:hover .group-hover\\:flex {\n display: flex;\n}\n.group:hover .group-hover\\:bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.group:hover .group-hover\\:text-primary {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n.group.destructive .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n border-color: hsl(var(--muted) / 0.4);\n}\n.group.destructive .group-\\[\\.destructive\\]\\:text-red-300 {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30:hover {\n border-color: hsl(var(--destructive) / 0.3);\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:bg-destructive:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-red-50:hover {\n --tw-text-opacity: 1;\n color: rgb(254 242 242 / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-destructive:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--destructive) / var(--tw-ring-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-red-400:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600:focus {\n --tw-ring-offset-color: #dc2626;\n}\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom] {\n --tw-translate-y: 0.25rem;\n 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));\n}\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left] {\n --tw-translate-x: -0.25rem;\n 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));\n}\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=right] {\n --tw-translate-x: 0.25rem;\n 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));\n}\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top] {\n --tw-translate-y: -0.25rem;\n 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));\n}\n.data-\\[state\\=checked\\]\\:translate-x-4[data-state=checked] {\n --tw-translate-x: 1rem;\n 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));\n}\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked] {\n --tw-translate-x: 1.25rem;\n 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));\n}\n.data-\\[state\\=checked\\]\\:translate-x-7[data-state=checked] {\n --tw-translate-x: 1.75rem;\n 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));\n}\n.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked] {\n --tw-translate-x: 0px;\n 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));\n}\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=cancel] {\n --tw-translate-x: 0px;\n 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));\n}\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=end] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n 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));\n}\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=move] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n 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));\n}\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n.data-\\[state\\=checked\\]\\:animate-bounce[data-state=checked] {\n animation: bounce 1s infinite;\n}\n.data-\\[state\\=active\\]\\:border-primary[data-state=active] {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:border-primary[data-state=checked] {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-background[data-state=active] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-primary[data-state=active] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-transparent[data-state=active] {\n background-color: transparent;\n}\n.data-\\[state\\=checked\\]\\:bg-accent[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-error[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--error) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-primary[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-success[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-warning[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:bg-accent[data-state=open] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=unchecked\\]\\:bg-input[data-state=unchecked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--input) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:text-foreground[data-state=active] {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:text-primary-foreground[data-state=active] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open] {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:underline[data-state=active] {\n text-decoration-line: underline;\n}\n.data-\\[state\\=active\\]\\:underline-offset-4[data-state=active] {\n text-underline-offset: 4px;\n}\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n.data-\\[state\\=inactive\\]\\:opacity-60[data-state=inactive] {\n opacity: 0.6;\n}\n.data-\\[state\\=active\\]\\:shadow-md[data-state=active] {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=move] {\n transition-property: none;\n}\n.data-\\[state\\=open\\]\\:duration-150[data-state=open] {\n transition-duration: 150ms;\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n box-shadow: var(--shadow-sm);\n}\n.data-\\[state\\=active\\]\\:shadow-md[data-state=active] {\n box-shadow: var(--shadow-md);\n}\n.data-\\[state\\=checked\\]\\:animate-bounce[data-state=checked] {\n animation: bounce 1s infinite;\n}\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=move] {\n transition: none;\n}\n.group[data-state=open] .group-data-\\[state\\=open\\]\\:rotate-180 {\n --tw-rotate: 180deg;\n 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));\n}\n.dark\\:border-blue-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-error\\/20:is(.dark *) {\n border-color: hsl(var(--error) / 0.2);\n}\n.dark\\:border-error\\/30:is(.dark *) {\n border-color: hsl(var(--error) / 0.3);\n}\n.dark\\:border-gray-100:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-600:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-700:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-700\\/20:is(.dark *) {\n border-color: rgb(55 65 81 / 0.2);\n}\n.dark\\:border-gray-700\\/30:is(.dark *) {\n border-color: rgb(55 65 81 / 0.3);\n}\n.dark\\:border-gray-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-green-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(22 101 52 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-orange-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(154 52 18 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-primary\\/30:is(.dark *) {\n border-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:border-success\\/20:is(.dark *) {\n border-color: hsl(var(--success) / 0.2);\n}\n.dark\\:bg-blue-900\\/20:is(.dark *) {\n background-color: rgb(30 58 138 / 0.2);\n}\n.dark\\:bg-error\\/90:is(.dark *) {\n background-color: hsl(var(--error) / 0.9);\n}\n.dark\\:bg-gray-700:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-800:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-800\\/10:is(.dark *) {\n background-color: rgb(31 41 55 / 0.1);\n}\n.dark\\:bg-gray-800\\/50:is(.dark *) {\n background-color: rgb(31 41 55 / 0.5);\n}\n.dark\\:bg-gray-800\\/80:is(.dark *) {\n background-color: rgb(31 41 55 / 0.8);\n}\n.dark\\:bg-gray-800\\/90:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:bg-gray-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-900\\/10:is(.dark *) {\n background-color: rgb(17 24 39 / 0.1);\n}\n.dark\\:bg-gray-900\\/50:is(.dark *) {\n background-color: rgb(17 24 39 / 0.5);\n}\n.dark\\:bg-gray-900\\/60:is(.dark *) {\n background-color: rgb(17 24 39 / 0.6);\n}\n.dark\\:bg-gray-950:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(3 7 18 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-green-900\\/20:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:bg-orange-900\\/20:is(.dark *) {\n background-color: rgb(124 45 18 / 0.2);\n}\n.dark\\:bg-primary:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-primary\\/20:is(.dark *) {\n background-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:bg-primary\\/90:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:bg-purple-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(88 28 135 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-purple-900\\/30:is(.dark *) {\n background-color: rgb(88 28 135 / 0.3);\n}\n.dark\\:bg-success\\/90:is(.dark *) {\n background-color: hsl(var(--success) / 0.9);\n}\n.dark\\:bg-transparent:is(.dark *) {\n background-color: transparent;\n}\n.dark\\:bg-warning\\/90:is(.dark *) {\n background-color: hsl(var(--warning) / 0.9);\n}\n.dark\\:bg-white\\/5:is(.dark *) {\n background-color: rgb(255 255 255 / 0.05);\n}\n.dark\\:from-primary\\/10:is(.dark *) {\n --tw-gradient-from: hsl(var(--primary) / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:to-primary\\/20:is(.dark *) {\n --tw-gradient-to: hsl(var(--primary) / 0.2) var(--tw-gradient-to-position);\n}\n.dark\\:text-blue-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(219 234 254 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-blue-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-200:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-900:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(220 252 231 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-orange-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 237 213 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-primary-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-purple-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(192 132 252 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-red-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-white:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-yellow-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.dark\\:shadow-inner:is(.dark *) {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-lg:is(.dark *) {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-md:is(.dark *) {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-sm:is(.dark *) {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-error\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--error) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-900\\/20:is(.dark *) {\n --tw-shadow-color: rgb(17 24 39 / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-900\\/30:is(.dark *) {\n --tw-shadow-color: rgb(17 24 39 / 0.3);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-950\\/10:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-primary\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--primary) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-primary\\/20:is(.dark *) {\n --tw-shadow-color: hsl(var(--primary) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-purple-500\\/10:is(.dark *) {\n --tw-shadow-color: rgb(168 85 247 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-success\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--success) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-warning\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--warning) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:ring-gray-600:is(.dark *) {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1));\n}\n.dark\\:ring-offset-gray-950:is(.dark *) {\n --tw-ring-offset-color: #030712;\n}\n.dark\\:backdrop-blur-sm:is(.dark *) {\n --tw-backdrop-blur: blur(4px);\n -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);\n 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);\n}\n.dark\\:shadow-sm:is(.dark *) {\n box-shadow: var(--shadow-sm);\n}\n.dark\\:shadow-md:is(.dark *) {\n box-shadow: var(--shadow-md);\n}\n.dark\\:shadow-lg:is(.dark *) {\n box-shadow: var(--shadow-lg);\n}\n.dark\\:placeholder\\:text-gray-500:is(.dark *)::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:placeholder\\:text-gray-500:is(.dark *)::placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:border-error\\/80:hover:is(.dark *) {\n border-color: hsl(var(--error) / 0.8);\n}\n.dark\\:hover\\:border-gray-500:hover:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.dark\\:hover\\:border-gray-600:hover:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n.dark\\:hover\\:border-gray-700\\/30:hover:is(.dark *) {\n border-color: rgb(55 65 81 / 0.3);\n}\n.dark\\:hover\\:border-primary\\/30:hover:is(.dark *) {\n border-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:hover\\:border-success\\/80:hover:is(.dark *) {\n border-color: hsl(var(--success) / 0.8);\n}\n.dark\\:hover\\:bg-error\\/80:hover:is(.dark *) {\n background-color: hsl(var(--error) / 0.8);\n}\n.dark\\:hover\\:bg-gray-700:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-gray-700\\/50:hover:is(.dark *) {\n background-color: rgb(55 65 81 / 0.5);\n}\n.dark\\:hover\\:bg-gray-700\\/90:hover:is(.dark *) {\n background-color: rgb(55 65 81 / 0.9);\n}\n.dark\\:hover\\:bg-gray-800:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-gray-800\\/20:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.2);\n}\n.dark\\:hover\\:bg-gray-800\\/30:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.3);\n}\n.dark\\:hover\\:bg-gray-800\\/80:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.8);\n}\n.dark\\:hover\\:bg-gray-800\\/90:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:hover\\:bg-primary\\/30:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:hover\\:bg-primary\\/90:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:hover\\:bg-purple-800:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(107 33 168 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-success\\/80:hover:is(.dark *) {\n background-color: hsl(var(--success) / 0.8);\n}\n.dark\\:hover\\:bg-warning\\/80:hover:is(.dark *) {\n background-color: hsl(var(--warning) / 0.8);\n}\n.dark\\:hover\\:bg-white\\/10:hover:is(.dark *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n.dark\\:hover\\:text-blue-300:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-white:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:bg-gray-700:focus:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:focus\\:bg-gray-800:focus:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:focus\\:bg-green-900\\/20:focus:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:focus\\:bg-red-900\\/20:focus:is(.dark *) {\n background-color: rgb(127 29 29 / 0.2);\n}\n.dark\\:focus\\:bg-yellow-900\\/20:focus:is(.dark *) {\n background-color: rgb(113 63 18 / 0.2);\n}\n.dark\\:focus\\:text-gray-100:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-gray-200:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-green-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-red-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-yellow-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus-visible\\:border-primary:focus-visible:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.dark\\:focus-visible\\:border-primary\\/80:focus-visible:is(.dark *) {\n border-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:focus-visible\\:ring-error\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--error) / 0.25);\n}\n.dark\\:focus-visible\\:ring-error\\/30:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--error) / 0.3);\n}\n.dark\\:focus-visible\\:ring-gray-500\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: rgb(107 114 128 / 0.4);\n}\n.dark\\:focus-visible\\:ring-primary\\/20:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:focus-visible\\:ring-primary\\/30:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:focus-visible\\:ring-primary\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.4);\n}\n.dark\\:focus-visible\\:ring-primary\\/50:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.5);\n}\n.dark\\:focus-visible\\:ring-purple-500\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: rgb(168 85 247 / 0.4);\n}\n.dark\\:focus-visible\\:ring-success\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--success) / 0.25);\n}\n.dark\\:focus-visible\\:ring-success\\/30:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--success) / 0.3);\n}\n.dark\\:focus-visible\\:ring-warning\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--warning) / 0.25);\n}\n.dark\\:focus-visible\\:ring-offset-gray-950:focus-visible:is(.dark *) {\n --tw-ring-offset-color: #030712;\n}\n.dark\\:active\\:bg-error\\/70:active:is(.dark *) {\n background-color: hsl(var(--error) / 0.7);\n}\n.dark\\:active\\:bg-gray-600\\/90:active:is(.dark *) {\n background-color: rgb(75 85 99 / 0.9);\n}\n.dark\\:active\\:bg-gray-700\\/90:active:is(.dark *) {\n background-color: rgb(55 65 81 / 0.9);\n}\n.dark\\:active\\:bg-gray-800\\/90:active:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:active\\:bg-primary\\/40:active:is(.dark *) {\n background-color: hsl(var(--primary) / 0.4);\n}\n.dark\\:active\\:bg-primary\\/80:active:is(.dark *) {\n background-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:active\\:bg-success\\/70:active:is(.dark *) {\n background-color: hsl(var(--success) / 0.7);\n}\n.dark\\:active\\:text-blue-500:active:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.peer:disabled ~ .dark\\:peer-disabled\\:opacity-60:is(.dark *) {\n opacity: 0.6;\n}\n.dark\\:data-\\[state\\=active\\]\\:border-primary\\/80[data-state=active]:is(.dark *) {\n border-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:data-\\[state\\=active\\]\\:bg-gray-900[data-state=active]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:bg-primary\\/90[data-state=active]:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:data-\\[state\\=unchecked\\]\\:bg-gray-700\\/70[data-state=unchecked]:is(.dark *) {\n background-color: rgb(55 65 81 / 0.7);\n}\n.dark\\:data-\\[state\\=active\\]\\:text-gray-100[data-state=active]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:text-gray-200[data-state=active]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:text-white[data-state=active]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=active\\]\\:shadow-gray-950\\/10[data-state=active]:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:data-\\[state\\=active\\]\\:shadow-gray-950\\/20[data-state=active]:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n@media (min-width: 640px) {\n .sm\\:bottom-0 {\n bottom: 0px;\n }\n .sm\\:right-0 {\n right: 0px;\n }\n .sm\\:top-auto {\n top: auto;\n }\n .sm\\:max-w-\\[425px\\] {\n max-width: 425px;\n }\n .sm\\:max-w-\\[500px\\] {\n max-width: 500px;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-col {\n flex-direction: column;\n }\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n .sm\\:text-left {\n text-align: left;\n }\n}\n@media (min-width: 768px) {\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n .lg\\:flex {\n display: flex;\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .lg\\:space-x-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(2rem * var(--tw-space-x-reverse));\n margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));\n }\n}\n.\\[\\&\\+div\\]\\:text-xs + div {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.\\[\\&\\>span\\]\\:line-clamp-1 > span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.\\[\\&_blockquote\\]\\:border-l-4 blockquote {\n border-left-width: 4px;\n}\n.\\[\\&_blockquote\\]\\:border-gray-300 blockquote {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.\\[\\&_blockquote\\]\\:pl-4 blockquote {\n padding-left: 1rem;\n}\n.\\[\\&_blockquote\\]\\:italic blockquote {\n font-style: italic;\n}\n.\\[\\&_h1\\]\\:mb-4 h1 {\n margin-bottom: 1rem;\n}\n.\\[\\&_h1\\]\\:text-3xl h1 {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.\\[\\&_h1\\]\\:font-bold h1 {\n font-weight: 700;\n}\n.\\[\\&_h2\\]\\:mb-3 h2 {\n margin-bottom: 0.75rem;\n}\n.\\[\\&_h2\\]\\:text-2xl h2 {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.\\[\\&_h2\\]\\:font-bold h2 {\n font-weight: 700;\n}\n.\\[\\&_h3\\]\\:mb-2 h3 {\n margin-bottom: 0.5rem;\n}\n.\\[\\&_h3\\]\\:text-xl h3 {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.\\[\\&_h3\\]\\:font-bold h3 {\n font-weight: 700;\n}\n.\\[\\&_h4\\]\\:mb-2 h4 {\n margin-bottom: 0.5rem;\n}\n.\\[\\&_h4\\]\\:text-lg h4 {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.\\[\\&_h4\\]\\:font-bold h4 {\n font-weight: 700;\n}\n.\\[\\&_h5\\]\\:mb-1 h5 {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_h5\\]\\:text-base h5 {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.\\[\\&_h5\\]\\:font-bold h5 {\n font-weight: 700;\n}\n.\\[\\&_h6\\]\\:mb-1 h6 {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_h6\\]\\:text-sm h6 {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.\\[\\&_h6\\]\\:font-bold h6 {\n font-weight: 700;\n}\n.\\[\\&_li\\]\\:mb-1 li {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_ol\\]\\:mb-4 ol {\n margin-bottom: 1rem;\n}\n.\\[\\&_ol\\]\\:list-decimal ol {\n list-style-type: decimal;\n}\n.\\[\\&_ol\\]\\:pl-6 ol {\n padding-left: 1.5rem;\n}\n.\\[\\&_pre\\]\\:overflow-x-auto pre {\n overflow-x: auto;\n}\n.\\[\\&_pre\\]\\:rounded pre {\n border-radius: 0.25rem;\n}\n.\\[\\&_pre\\]\\:bg-gray-100 pre {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_pre\\]\\:p-4 pre {\n padding: 1rem;\n}\n.\\[\\&_pre\\]\\:dark\\:bg-gray-800:is(.dark *) pre {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_table\\]\\:mb-4 table {\n margin-bottom: 1rem;\n}\n.\\[\\&_table\\]\\:w-full table {\n width: 100%;\n}\n.\\[\\&_table_td\\]\\:border table td {\n border-width: 1px;\n}\n.\\[\\&_table_td\\]\\:border-gray-300 table td {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.\\[\\&_table_td\\]\\:p-2 table td {\n padding: 0.5rem;\n}\n.\\[\\&_table_th\\]\\:border table th {\n border-width: 1px;\n}\n.\\[\\&_table_th\\]\\:border-gray-300 table th {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.\\[\\&_table_th\\]\\:bg-gray-50 table th {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_table_th\\]\\:p-2 table th {\n padding: 0.5rem;\n}\n.\\[\\&_table_th\\]\\:font-semibold table th {\n font-weight: 600;\n}\n.\\[\\&_ul\\]\\:mb-4 ul {\n margin-bottom: 1rem;\n}\n.\\[\\&_ul\\]\\:list-disc ul {\n list-style-type: disc;\n}\n.\\[\\&_ul\\]\\:pl-6 ul {\n padding-left: 1.5rem;\n}\n');
|
|
1746
1747
|
function cn(...inputs) {
|
|
1747
1748
|
return twMerge(clsx(inputs));
|
|
1748
1749
|
}
|
|
@@ -1914,7 +1915,7 @@ var cardVariants = cva(
|
|
|
1914
1915
|
}
|
|
1915
1916
|
}
|
|
1916
1917
|
);
|
|
1917
|
-
var Card =
|
|
1918
|
+
var Card = React16.forwardRef(
|
|
1918
1919
|
({ className, variant, size, radius, interactive, microInteraction = "lift", ...props }, ref) => {
|
|
1919
1920
|
if (interactive && microInteraction !== "none") {
|
|
1920
1921
|
const interactionProps = {
|
|
@@ -1942,7 +1943,7 @@ var Card = React17.forwardRef(
|
|
|
1942
1943
|
}
|
|
1943
1944
|
);
|
|
1944
1945
|
Card.displayName = "Card";
|
|
1945
|
-
var CardHeader =
|
|
1946
|
+
var CardHeader = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1946
1947
|
"div",
|
|
1947
1948
|
{
|
|
1948
1949
|
ref,
|
|
@@ -1951,7 +1952,7 @@ var CardHeader = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1951
1952
|
}
|
|
1952
1953
|
));
|
|
1953
1954
|
CardHeader.displayName = "CardHeader";
|
|
1954
|
-
var CardTitle =
|
|
1955
|
+
var CardTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1955
1956
|
"h3",
|
|
1956
1957
|
{
|
|
1957
1958
|
ref,
|
|
@@ -1960,7 +1961,7 @@ var CardTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1960
1961
|
}
|
|
1961
1962
|
));
|
|
1962
1963
|
CardTitle.displayName = "CardTitle";
|
|
1963
|
-
var CardDescription =
|
|
1964
|
+
var CardDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1964
1965
|
"p",
|
|
1965
1966
|
{
|
|
1966
1967
|
ref,
|
|
@@ -1969,9 +1970,9 @@ var CardDescription = React17.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1969
1970
|
}
|
|
1970
1971
|
));
|
|
1971
1972
|
CardDescription.displayName = "CardDescription";
|
|
1972
|
-
var CardContent =
|
|
1973
|
+
var CardContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("pt-0", className), ...props }));
|
|
1973
1974
|
CardContent.displayName = "CardContent";
|
|
1974
|
-
var CardFooter =
|
|
1975
|
+
var CardFooter = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1975
1976
|
"div",
|
|
1976
1977
|
{
|
|
1977
1978
|
ref,
|
|
@@ -2129,7 +2130,7 @@ var buttonVariants = cva(
|
|
|
2129
2130
|
}
|
|
2130
2131
|
}
|
|
2131
2132
|
);
|
|
2132
|
-
var Button =
|
|
2133
|
+
var Button = React16.forwardRef(
|
|
2133
2134
|
({
|
|
2134
2135
|
className,
|
|
2135
2136
|
variant,
|
|
@@ -2204,7 +2205,7 @@ var animatedButtonVariants = cva(
|
|
|
2204
2205
|
}
|
|
2205
2206
|
}
|
|
2206
2207
|
);
|
|
2207
|
-
var AnimatedButtonInternal =
|
|
2208
|
+
var AnimatedButtonInternal = React16__default.forwardRef(
|
|
2208
2209
|
({ className, variant, size, state = "idle", onStateChange, children, onClick, ...props }, ref) => {
|
|
2209
2210
|
const [internalState, setInternalState] = useState("idle");
|
|
2210
2211
|
const currentState = state !== "idle" ? state : internalState;
|
|
@@ -2320,11 +2321,10 @@ var AnimatedButtonInternal = React17__default.forwardRef(
|
|
|
2320
2321
|
}
|
|
2321
2322
|
);
|
|
2322
2323
|
AnimatedButtonInternal.displayName = "AnimatedButtonInternal";
|
|
2323
|
-
var AnimatedButton =
|
|
2324
|
+
var AnimatedButton = React16__default.forwardRef(
|
|
2324
2325
|
({ className, ...props }, ref) => {
|
|
2325
|
-
const docsProAccess = { hasAccess: true };
|
|
2326
2326
|
const { hasProAccess, isLoading } = useSubscription();
|
|
2327
|
-
if (!
|
|
2327
|
+
if (!isLoading && !hasProAccess) {
|
|
2328
2328
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2329
2329
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
2330
2330
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -2381,9 +2381,8 @@ var ErrorBoundaryInternal = class extends Component {
|
|
|
2381
2381
|
}
|
|
2382
2382
|
};
|
|
2383
2383
|
function ErrorBoundaryWrapper(props) {
|
|
2384
|
-
const docsProAccess = { hasAccess: true };
|
|
2385
2384
|
const { hasProAccess, isLoading } = useSubscription();
|
|
2386
|
-
if (!
|
|
2385
|
+
if (!isLoading && !hasProAccess) {
|
|
2387
2386
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", props.className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2388
2387
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
2389
2388
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -2399,7 +2398,7 @@ function ErrorBoundaryWrapper(props) {
|
|
|
2399
2398
|
return /* @__PURE__ */ jsx(ErrorBoundaryInternal, { ...props });
|
|
2400
2399
|
}
|
|
2401
2400
|
var ErrorBoundary = ErrorBoundaryWrapper;
|
|
2402
|
-
var FloatingActionButtonInternal =
|
|
2401
|
+
var FloatingActionButtonInternal = React16__default.forwardRef(
|
|
2403
2402
|
({
|
|
2404
2403
|
actions = [],
|
|
2405
2404
|
position = "bottom-right",
|
|
@@ -2513,7 +2512,6 @@ var FloatingActionButtonInternal = React17__default.forwardRef(
|
|
|
2513
2512
|
whileTap: { scale: 0.9 },
|
|
2514
2513
|
animate: { rotate: isOpen ? 45 : 0 },
|
|
2515
2514
|
transition: { duration: 0.2 },
|
|
2516
|
-
...props,
|
|
2517
2515
|
children: children || (actions.length > 0 ? /* @__PURE__ */ jsx(Plus, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx(Plus, { className: "h-5 w-5" }))
|
|
2518
2516
|
}
|
|
2519
2517
|
),
|
|
@@ -2531,11 +2529,10 @@ var FloatingActionButtonInternal = React17__default.forwardRef(
|
|
|
2531
2529
|
}
|
|
2532
2530
|
);
|
|
2533
2531
|
FloatingActionButtonInternal.displayName = "FloatingActionButtonInternal";
|
|
2534
|
-
var FloatingActionButton =
|
|
2532
|
+
var FloatingActionButton = React16__default.forwardRef(
|
|
2535
2533
|
({ className, ...props }, ref) => {
|
|
2536
|
-
const docsProAccess = { hasAccess: true };
|
|
2537
2534
|
const { hasProAccess, isLoading } = useSubscription();
|
|
2538
|
-
if (!
|
|
2535
|
+
if (!isLoading && !hasProAccess) {
|
|
2539
2536
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2540
2537
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
2541
2538
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -2552,7 +2549,7 @@ var FloatingActionButton = React17__default.forwardRef(
|
|
|
2552
2549
|
}
|
|
2553
2550
|
);
|
|
2554
2551
|
FloatingActionButton.displayName = "FloatingActionButton";
|
|
2555
|
-
var HoverCard3DInternal =
|
|
2552
|
+
var HoverCard3DInternal = React16__default.forwardRef(
|
|
2556
2553
|
({
|
|
2557
2554
|
children,
|
|
2558
2555
|
className,
|
|
@@ -2611,12 +2608,11 @@ var HoverCard3DInternal = React17__default.forwardRef(
|
|
|
2611
2608
|
transformStyle: "preserve-3d"
|
|
2612
2609
|
},
|
|
2613
2610
|
animate: {
|
|
2614
|
-
rotateX: isHovered ? rotateX : 0,
|
|
2615
|
-
rotateY: isHovered ? rotateY : 0,
|
|
2611
|
+
rotateX: isHovered ? rotateX.get() : 0,
|
|
2612
|
+
rotateY: isHovered ? rotateY.get() : 0,
|
|
2616
2613
|
scale: isHovered ? 1.05 : 1
|
|
2617
2614
|
},
|
|
2618
2615
|
transition: { duration: 0.15 },
|
|
2619
|
-
...props,
|
|
2620
2616
|
children: [
|
|
2621
2617
|
/* @__PURE__ */ jsx(
|
|
2622
2618
|
motion.div,
|
|
@@ -2657,11 +2653,10 @@ var HoverCard3DInternal = React17__default.forwardRef(
|
|
|
2657
2653
|
}
|
|
2658
2654
|
);
|
|
2659
2655
|
HoverCard3DInternal.displayName = "HoverCard3DInternal";
|
|
2660
|
-
var HoverCard3D =
|
|
2656
|
+
var HoverCard3D = React16__default.forwardRef(
|
|
2661
2657
|
({ className, ...props }, ref) => {
|
|
2662
|
-
const docsProAccess = { hasAccess: true };
|
|
2663
2658
|
const { hasProAccess, isLoading } = useSubscription();
|
|
2664
|
-
if (!
|
|
2659
|
+
if (!isLoading && !hasProAccess) {
|
|
2665
2660
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2666
2661
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
2667
2662
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -2678,7 +2673,7 @@ var HoverCard3D = React17__default.forwardRef(
|
|
|
2678
2673
|
}
|
|
2679
2674
|
);
|
|
2680
2675
|
HoverCard3D.displayName = "HoverCard3D";
|
|
2681
|
-
var MagneticButtonInternal =
|
|
2676
|
+
var MagneticButtonInternal = React16__default.forwardRef(
|
|
2682
2677
|
({
|
|
2683
2678
|
children,
|
|
2684
2679
|
className,
|
|
@@ -2747,11 +2742,10 @@ var MagneticButtonInternal = React17__default.forwardRef(
|
|
|
2747
2742
|
whileHover: { scale: 1.05 },
|
|
2748
2743
|
whileTap: { scale: 0.95 },
|
|
2749
2744
|
animate: {
|
|
2750
|
-
rotateX: isHovered ? rotateX : 0,
|
|
2751
|
-
rotateY: isHovered ? rotateY : 0
|
|
2745
|
+
rotateX: isHovered ? rotateX.get() : 0,
|
|
2746
|
+
rotateY: isHovered ? rotateY.get() : 0
|
|
2752
2747
|
},
|
|
2753
2748
|
transition: { duration: 0.3 },
|
|
2754
|
-
...props,
|
|
2755
2749
|
children: [
|
|
2756
2750
|
/* @__PURE__ */ jsx(
|
|
2757
2751
|
motion.div,
|
|
@@ -2781,11 +2775,10 @@ var MagneticButtonInternal = React17__default.forwardRef(
|
|
|
2781
2775
|
}
|
|
2782
2776
|
);
|
|
2783
2777
|
MagneticButtonInternal.displayName = "MagneticButtonInternal";
|
|
2784
|
-
var MagneticButton =
|
|
2778
|
+
var MagneticButton = React16__default.forwardRef(
|
|
2785
2779
|
({ className, ...props }, ref) => {
|
|
2786
|
-
const docsProAccess = { hasAccess: true };
|
|
2787
2780
|
const { hasProAccess, isLoading } = useSubscription();
|
|
2788
|
-
if (!
|
|
2781
|
+
if (!isLoading && !hasProAccess) {
|
|
2789
2782
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2790
2783
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
2791
2784
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -2802,7 +2795,7 @@ var MagneticButton = React17__default.forwardRef(
|
|
|
2802
2795
|
}
|
|
2803
2796
|
);
|
|
2804
2797
|
MagneticButton.displayName = "MagneticButton";
|
|
2805
|
-
var PinchZoomInternal =
|
|
2798
|
+
var PinchZoomInternal = React16__default.forwardRef(
|
|
2806
2799
|
({
|
|
2807
2800
|
children,
|
|
2808
2801
|
minZoom = 0.5,
|
|
@@ -2903,11 +2896,10 @@ var PinchZoomInternal = React17__default.forwardRef(
|
|
|
2903
2896
|
}
|
|
2904
2897
|
);
|
|
2905
2898
|
PinchZoomInternal.displayName = "PinchZoomInternal";
|
|
2906
|
-
var PinchZoom =
|
|
2899
|
+
var PinchZoom = React16__default.forwardRef(
|
|
2907
2900
|
({ className, ...props }, ref) => {
|
|
2908
|
-
const docsProAccess = { hasAccess: true };
|
|
2909
2901
|
const { hasProAccess, isLoading } = useSubscription();
|
|
2910
|
-
if (!
|
|
2902
|
+
if (!isLoading && !hasProAccess) {
|
|
2911
2903
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2912
2904
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
2913
2905
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -2924,7 +2916,7 @@ var PinchZoom = React17__default.forwardRef(
|
|
|
2924
2916
|
}
|
|
2925
2917
|
);
|
|
2926
2918
|
PinchZoom.displayName = "PinchZoom";
|
|
2927
|
-
var SpotlightCardInternal =
|
|
2919
|
+
var SpotlightCardInternal = React16__default.forwardRef(
|
|
2928
2920
|
({
|
|
2929
2921
|
children,
|
|
2930
2922
|
className,
|
|
@@ -2971,7 +2963,6 @@ var SpotlightCardInternal = React17__default.forwardRef(
|
|
|
2971
2963
|
onMouseLeave: handleMouseLeave2,
|
|
2972
2964
|
whileHover: { scale: 1.02 },
|
|
2973
2965
|
transition: { duration: 0.2 },
|
|
2974
|
-
...props,
|
|
2975
2966
|
children: [
|
|
2976
2967
|
/* @__PURE__ */ jsx(
|
|
2977
2968
|
motion.div,
|
|
@@ -3054,11 +3045,10 @@ var SpotlightCardInternal = React17__default.forwardRef(
|
|
|
3054
3045
|
}
|
|
3055
3046
|
);
|
|
3056
3047
|
SpotlightCardInternal.displayName = "SpotlightCardInternal";
|
|
3057
|
-
var SpotlightCard =
|
|
3048
|
+
var SpotlightCard = React16__default.forwardRef(
|
|
3058
3049
|
({ className, ...props }, ref) => {
|
|
3059
|
-
const docsProAccess = { hasAccess: true };
|
|
3060
3050
|
const { hasProAccess, isLoading } = useSubscription();
|
|
3061
|
-
if (!
|
|
3051
|
+
if (!isLoading && !hasProAccess) {
|
|
3062
3052
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
3063
3053
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
3064
3054
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -3311,7 +3301,7 @@ var inputVariants = cva(
|
|
|
3311
3301
|
}
|
|
3312
3302
|
}
|
|
3313
3303
|
);
|
|
3314
|
-
var Input =
|
|
3304
|
+
var Input = React16.forwardRef(
|
|
3315
3305
|
({
|
|
3316
3306
|
className,
|
|
3317
3307
|
wrapperClassName,
|
|
@@ -3385,7 +3375,7 @@ Input.displayName = "Input";
|
|
|
3385
3375
|
var labelVariants = cva(
|
|
3386
3376
|
"text-sm font-medium leading-none text-gray-900 dark:text-gray-200 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 dark:peer-disabled:opacity-60 transition-colors duration-200"
|
|
3387
3377
|
);
|
|
3388
|
-
var Label =
|
|
3378
|
+
var Label = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3389
3379
|
LabelPrimitive.Root,
|
|
3390
3380
|
{
|
|
3391
3381
|
ref,
|
|
@@ -3394,7 +3384,7 @@ var Label = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3394
3384
|
}
|
|
3395
3385
|
));
|
|
3396
3386
|
Label.displayName = LabelPrimitive.Root.displayName;
|
|
3397
|
-
var Textarea =
|
|
3387
|
+
var Textarea = React16__default.forwardRef(
|
|
3398
3388
|
({ className, ...props }, ref) => {
|
|
3399
3389
|
return /* @__PURE__ */ jsx(
|
|
3400
3390
|
"textarea",
|
|
@@ -3413,7 +3403,7 @@ Textarea.displayName = "Textarea";
|
|
|
3413
3403
|
var Select = SelectPrimitive.Root;
|
|
3414
3404
|
Select.displayName = "Select";
|
|
3415
3405
|
var SelectValue = SelectPrimitive.Value;
|
|
3416
|
-
var SelectTrigger =
|
|
3406
|
+
var SelectTrigger = React16.forwardRef(({ className, children, variant = "standard", size = "md", error, success, loading, leftIcon, rightIcon, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
3417
3407
|
SelectPrimitive.Trigger,
|
|
3418
3408
|
{
|
|
3419
3409
|
ref,
|
|
@@ -3455,7 +3445,7 @@ var SelectTrigger = React17.forwardRef(({ className, children, variant = "standa
|
|
|
3455
3445
|
}
|
|
3456
3446
|
));
|
|
3457
3447
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
3458
|
-
var SelectScrollUpButton =
|
|
3448
|
+
var SelectScrollUpButton = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3459
3449
|
SelectPrimitive.ScrollUpButton,
|
|
3460
3450
|
{
|
|
3461
3451
|
ref,
|
|
@@ -3468,7 +3458,7 @@ var SelectScrollUpButton = React17.forwardRef(({ className, ...props }, ref) =>
|
|
|
3468
3458
|
}
|
|
3469
3459
|
));
|
|
3470
3460
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
3471
|
-
var SelectScrollDownButton =
|
|
3461
|
+
var SelectScrollDownButton = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3472
3462
|
SelectPrimitive.ScrollDownButton,
|
|
3473
3463
|
{
|
|
3474
3464
|
ref,
|
|
@@ -3481,7 +3471,7 @@ var SelectScrollDownButton = React17.forwardRef(({ className, ...props }, ref) =
|
|
|
3481
3471
|
}
|
|
3482
3472
|
));
|
|
3483
3473
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
3484
|
-
var SelectContent =
|
|
3474
|
+
var SelectContent = React16.forwardRef(({ className, children, position = "item-aligned", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
3485
3475
|
SelectPrimitive.Content,
|
|
3486
3476
|
{
|
|
3487
3477
|
ref,
|
|
@@ -3518,7 +3508,7 @@ var SelectContent = React17.forwardRef(({ className, children, position = "item-
|
|
|
3518
3508
|
}
|
|
3519
3509
|
) }));
|
|
3520
3510
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
3521
|
-
var SelectLabel =
|
|
3511
|
+
var SelectLabel = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3522
3512
|
SelectPrimitive.Label,
|
|
3523
3513
|
{
|
|
3524
3514
|
ref,
|
|
@@ -3527,7 +3517,7 @@ var SelectLabel = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3527
3517
|
}
|
|
3528
3518
|
));
|
|
3529
3519
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
3530
|
-
var SelectItem =
|
|
3520
|
+
var SelectItem = React16.forwardRef(({ className, children, variant = "default", size = "md", rightIcon, customIndicator, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
3531
3521
|
SelectPrimitive.Item,
|
|
3532
3522
|
{
|
|
3533
3523
|
ref,
|
|
@@ -3554,7 +3544,7 @@ var SelectItem = React17.forwardRef(({ className, children, variant = "default",
|
|
|
3554
3544
|
}
|
|
3555
3545
|
));
|
|
3556
3546
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
3557
|
-
var SelectSeparator =
|
|
3547
|
+
var SelectSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3558
3548
|
SelectPrimitive.Separator,
|
|
3559
3549
|
{
|
|
3560
3550
|
ref,
|
|
@@ -3588,7 +3578,7 @@ var overlayVariants = cva(
|
|
|
3588
3578
|
}
|
|
3589
3579
|
}
|
|
3590
3580
|
);
|
|
3591
|
-
var DialogOverlay =
|
|
3581
|
+
var DialogOverlay = React16.forwardRef(({ className, variant, animation, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3592
3582
|
DialogPrimitive2.Overlay,
|
|
3593
3583
|
{
|
|
3594
3584
|
ref,
|
|
@@ -3647,7 +3637,7 @@ var dialogContentVariants = cva(
|
|
|
3647
3637
|
}
|
|
3648
3638
|
}
|
|
3649
3639
|
);
|
|
3650
|
-
var DialogContent =
|
|
3640
|
+
var DialogContent = React16.forwardRef(
|
|
3651
3641
|
({
|
|
3652
3642
|
className,
|
|
3653
3643
|
children,
|
|
@@ -3760,7 +3750,7 @@ var DialogFooter = ({
|
|
|
3760
3750
|
}
|
|
3761
3751
|
);
|
|
3762
3752
|
DialogFooter.displayName = "DialogFooter";
|
|
3763
|
-
var DialogTitle =
|
|
3753
|
+
var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3764
3754
|
DialogPrimitive2.Title,
|
|
3765
3755
|
{
|
|
3766
3756
|
ref,
|
|
@@ -3772,7 +3762,7 @@ var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3772
3762
|
}
|
|
3773
3763
|
));
|
|
3774
3764
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
3775
|
-
var DialogDescription =
|
|
3765
|
+
var DialogDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3776
3766
|
DialogPrimitive2.Description,
|
|
3777
3767
|
{
|
|
3778
3768
|
ref,
|
|
@@ -3784,7 +3774,7 @@ var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3784
3774
|
}
|
|
3785
3775
|
));
|
|
3786
3776
|
DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
3787
|
-
var DialogForm =
|
|
3777
|
+
var DialogForm = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3788
3778
|
"form",
|
|
3789
3779
|
{
|
|
3790
3780
|
ref,
|
|
@@ -4108,7 +4098,6 @@ function EventDialog({
|
|
|
4108
4098
|
] })
|
|
4109
4099
|
] }) });
|
|
4110
4100
|
}
|
|
4111
|
-
process.env.NEXT_PUBLIC_MOONUI_API || "https://moonui.dev";
|
|
4112
4101
|
var DAYS_OF_WEEK = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
4113
4102
|
var MONTHS = [
|
|
4114
4103
|
"January",
|
|
@@ -4159,14 +4148,14 @@ function Calendar2({
|
|
|
4159
4148
|
] })
|
|
4160
4149
|
] }) }) });
|
|
4161
4150
|
}
|
|
4162
|
-
const [currentDate, setCurrentDate] =
|
|
4163
|
-
const [selectedDate, setSelectedDate] =
|
|
4164
|
-
|
|
4165
|
-
const [eventDialogOpen, setEventDialogOpen] =
|
|
4166
|
-
const [eventDialogMode, setEventDialogMode] =
|
|
4167
|
-
const [selectedEvent, setSelectedEvent] =
|
|
4168
|
-
const [draggedEvent, setDraggedEvent] =
|
|
4169
|
-
const [dragTargetDate, setDragTargetDate] =
|
|
4151
|
+
const [currentDate, setCurrentDate] = React16__default.useState(/* @__PURE__ */ new Date());
|
|
4152
|
+
const [selectedDate, setSelectedDate] = React16__default.useState(null);
|
|
4153
|
+
React16__default.useState("month");
|
|
4154
|
+
const [eventDialogOpen, setEventDialogOpen] = React16__default.useState(false);
|
|
4155
|
+
const [eventDialogMode, setEventDialogMode] = React16__default.useState("create");
|
|
4156
|
+
const [selectedEvent, setSelectedEvent] = React16__default.useState(null);
|
|
4157
|
+
const [draggedEvent, setDraggedEvent] = React16__default.useState(null);
|
|
4158
|
+
const [dragTargetDate, setDragTargetDate] = React16__default.useState(null);
|
|
4170
4159
|
const today = /* @__PURE__ */ new Date();
|
|
4171
4160
|
const currentMonth = currentDate.getMonth();
|
|
4172
4161
|
const currentYear = currentDate.getFullYear();
|
|
@@ -4557,7 +4546,7 @@ var avatarVariants = cva(
|
|
|
4557
4546
|
}
|
|
4558
4547
|
}
|
|
4559
4548
|
);
|
|
4560
|
-
var Avatar =
|
|
4549
|
+
var Avatar = React16.forwardRef(({ className, size, radius, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4561
4550
|
AvatarPrimitive.Root,
|
|
4562
4551
|
{
|
|
4563
4552
|
ref,
|
|
@@ -4566,7 +4555,7 @@ var Avatar = React17.forwardRef(({ className, size, radius, variant, ...props },
|
|
|
4566
4555
|
}
|
|
4567
4556
|
));
|
|
4568
4557
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
4569
|
-
var AvatarImage =
|
|
4558
|
+
var AvatarImage = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4570
4559
|
AvatarPrimitive.Image,
|
|
4571
4560
|
{
|
|
4572
4561
|
ref,
|
|
@@ -4575,7 +4564,7 @@ var AvatarImage = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4575
4564
|
}
|
|
4576
4565
|
));
|
|
4577
4566
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
4578
|
-
var AvatarFallback =
|
|
4567
|
+
var AvatarFallback = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4579
4568
|
AvatarPrimitive.Fallback,
|
|
4580
4569
|
{
|
|
4581
4570
|
ref,
|
|
@@ -4587,7 +4576,7 @@ var AvatarFallback = React17.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
4587
4576
|
}
|
|
4588
4577
|
));
|
|
4589
4578
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
4590
|
-
var AvatarGroup =
|
|
4579
|
+
var AvatarGroup = React16.forwardRef(
|
|
4591
4580
|
({ className, limit, avatars, overlapOffset = -8, ...props }, ref) => {
|
|
4592
4581
|
const visibleAvatars = limit ? avatars.slice(0, limit) : avatars;
|
|
4593
4582
|
const remainingCount = limit ? Math.max(0, avatars.length - limit) : 0;
|
|
@@ -4646,9 +4635,8 @@ function Kanban({
|
|
|
4646
4635
|
showCardDetails = true,
|
|
4647
4636
|
disabled = false
|
|
4648
4637
|
}) {
|
|
4649
|
-
const docsProAccess = { hasAccess: true };
|
|
4650
4638
|
const { hasProAccess, isLoading } = useSubscription();
|
|
4651
|
-
if (!
|
|
4639
|
+
if (!isLoading && !hasProAccess) {
|
|
4652
4640
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-full", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-12 text-center", children: /* @__PURE__ */ jsxs("div", { className: "max-w-md mx-auto space-y-4", children: [
|
|
4653
4641
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
4654
4642
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -4661,9 +4649,9 @@ function Kanban({
|
|
|
4661
4649
|
] })
|
|
4662
4650
|
] }) }) });
|
|
4663
4651
|
}
|
|
4664
|
-
const [draggedCard, setDraggedCard] =
|
|
4665
|
-
const [draggedOverColumn, setDraggedOverColumn] =
|
|
4666
|
-
const [draggedFromColumn, setDraggedFromColumn] =
|
|
4652
|
+
const [draggedCard, setDraggedCard] = React16__default.useState(null);
|
|
4653
|
+
const [draggedOverColumn, setDraggedOverColumn] = React16__default.useState(null);
|
|
4654
|
+
const [draggedFromColumn, setDraggedFromColumn] = React16__default.useState(null);
|
|
4667
4655
|
const handleDragStart = (e, cardId) => {
|
|
4668
4656
|
if (disabled)
|
|
4669
4657
|
return;
|
|
@@ -5082,7 +5070,7 @@ function findDiffEnd(a, b, posA, posB) {
|
|
|
5082
5070
|
posB -= size;
|
|
5083
5071
|
}
|
|
5084
5072
|
}
|
|
5085
|
-
var
|
|
5073
|
+
var Fragment2 = class {
|
|
5086
5074
|
/**
|
|
5087
5075
|
@internal
|
|
5088
5076
|
*/
|
|
@@ -5150,7 +5138,7 @@ var Fragment3 = class {
|
|
|
5150
5138
|
}
|
|
5151
5139
|
for (; i < other.content.length; i++)
|
|
5152
5140
|
content.push(other.content[i]);
|
|
5153
|
-
return new
|
|
5141
|
+
return new Fragment2(content, this.size + other.size);
|
|
5154
5142
|
}
|
|
5155
5143
|
/**
|
|
5156
5144
|
Cut out the sub-fragment between the two given positions.
|
|
@@ -5174,17 +5162,17 @@ var Fragment3 = class {
|
|
|
5174
5162
|
}
|
|
5175
5163
|
pos = end;
|
|
5176
5164
|
}
|
|
5177
|
-
return new
|
|
5165
|
+
return new Fragment2(result, size);
|
|
5178
5166
|
}
|
|
5179
5167
|
/**
|
|
5180
5168
|
@internal
|
|
5181
5169
|
*/
|
|
5182
5170
|
cutByIndex(from2, to) {
|
|
5183
5171
|
if (from2 == to)
|
|
5184
|
-
return
|
|
5172
|
+
return Fragment2.empty;
|
|
5185
5173
|
if (from2 == 0 && to == this.content.length)
|
|
5186
5174
|
return this;
|
|
5187
|
-
return new
|
|
5175
|
+
return new Fragment2(this.content.slice(from2, to));
|
|
5188
5176
|
}
|
|
5189
5177
|
/**
|
|
5190
5178
|
Create a new fragment in which the node at the given index is
|
|
@@ -5197,21 +5185,21 @@ var Fragment3 = class {
|
|
|
5197
5185
|
let copy2 = this.content.slice();
|
|
5198
5186
|
let size = this.size + node.nodeSize - current.nodeSize;
|
|
5199
5187
|
copy2[index] = node;
|
|
5200
|
-
return new
|
|
5188
|
+
return new Fragment2(copy2, size);
|
|
5201
5189
|
}
|
|
5202
5190
|
/**
|
|
5203
5191
|
Create a new fragment by prepending the given node to this
|
|
5204
5192
|
fragment.
|
|
5205
5193
|
*/
|
|
5206
5194
|
addToStart(node) {
|
|
5207
|
-
return new
|
|
5195
|
+
return new Fragment2([node].concat(this.content), this.size + node.nodeSize);
|
|
5208
5196
|
}
|
|
5209
5197
|
/**
|
|
5210
5198
|
Create a new fragment by appending the given node to this
|
|
5211
5199
|
fragment.
|
|
5212
5200
|
*/
|
|
5213
5201
|
addToEnd(node) {
|
|
5214
|
-
return new
|
|
5202
|
+
return new Fragment2(this.content.concat(node), this.size + node.nodeSize);
|
|
5215
5203
|
}
|
|
5216
5204
|
/**
|
|
5217
5205
|
Compare this fragment to another one.
|
|
@@ -5330,10 +5318,10 @@ var Fragment3 = class {
|
|
|
5330
5318
|
*/
|
|
5331
5319
|
static fromJSON(schema, value) {
|
|
5332
5320
|
if (!value)
|
|
5333
|
-
return
|
|
5321
|
+
return Fragment2.empty;
|
|
5334
5322
|
if (!Array.isArray(value))
|
|
5335
5323
|
throw new RangeError("Invalid input for Fragment.fromJSON");
|
|
5336
|
-
return new
|
|
5324
|
+
return new Fragment2(value.map(schema.nodeFromJSON));
|
|
5337
5325
|
}
|
|
5338
5326
|
/**
|
|
5339
5327
|
Build a fragment from an array of nodes. Ensures that adjacent
|
|
@@ -5341,7 +5329,7 @@ var Fragment3 = class {
|
|
|
5341
5329
|
*/
|
|
5342
5330
|
static fromArray(array) {
|
|
5343
5331
|
if (!array.length)
|
|
5344
|
-
return
|
|
5332
|
+
return Fragment2.empty;
|
|
5345
5333
|
let joined, size = 0;
|
|
5346
5334
|
for (let i = 0; i < array.length; i++) {
|
|
5347
5335
|
let node = array[i];
|
|
@@ -5354,7 +5342,7 @@ var Fragment3 = class {
|
|
|
5354
5342
|
joined.push(node);
|
|
5355
5343
|
}
|
|
5356
5344
|
}
|
|
5357
|
-
return new
|
|
5345
|
+
return new Fragment2(joined || array, size);
|
|
5358
5346
|
}
|
|
5359
5347
|
/**
|
|
5360
5348
|
Create a fragment from something that can be interpreted as a
|
|
@@ -5364,17 +5352,17 @@ var Fragment3 = class {
|
|
|
5364
5352
|
*/
|
|
5365
5353
|
static from(nodes) {
|
|
5366
5354
|
if (!nodes)
|
|
5367
|
-
return
|
|
5368
|
-
if (nodes instanceof
|
|
5355
|
+
return Fragment2.empty;
|
|
5356
|
+
if (nodes instanceof Fragment2)
|
|
5369
5357
|
return nodes;
|
|
5370
5358
|
if (Array.isArray(nodes))
|
|
5371
5359
|
return this.fromArray(nodes);
|
|
5372
5360
|
if (nodes.attrs)
|
|
5373
|
-
return new
|
|
5361
|
+
return new Fragment2([nodes], nodes.nodeSize);
|
|
5374
5362
|
throw new RangeError("Can not convert " + nodes + " to a Fragment" + (nodes.nodesBetween ? " (looks like multiple versions of prosemirror-model were loaded)" : ""));
|
|
5375
5363
|
}
|
|
5376
5364
|
};
|
|
5377
|
-
|
|
5365
|
+
Fragment2.empty = new Fragment2([], 0);
|
|
5378
5366
|
var found = { index: 0, offset: 0 };
|
|
5379
5367
|
function retIndex(index, offset) {
|
|
5380
5368
|
found.index = index;
|
|
@@ -5599,7 +5587,7 @@ var Slice = class {
|
|
|
5599
5587
|
let openStart = json2.openStart || 0, openEnd = json2.openEnd || 0;
|
|
5600
5588
|
if (typeof openStart != "number" || typeof openEnd != "number")
|
|
5601
5589
|
throw new RangeError("Invalid input for Slice.fromJSON");
|
|
5602
|
-
return new Slice(
|
|
5590
|
+
return new Slice(Fragment2.fromJSON(schema, json2.content), openStart, openEnd);
|
|
5603
5591
|
}
|
|
5604
5592
|
/**
|
|
5605
5593
|
Create a slice from a fragment by taking the maximum possible
|
|
@@ -5614,7 +5602,7 @@ var Slice = class {
|
|
|
5614
5602
|
return new Slice(fragment, openStart, openEnd);
|
|
5615
5603
|
}
|
|
5616
5604
|
};
|
|
5617
|
-
Slice.empty = new Slice(
|
|
5605
|
+
Slice.empty = new Slice(Fragment2.empty, 0, 0);
|
|
5618
5606
|
function removeRange(content, from2, to) {
|
|
5619
5607
|
let { index, offset } = content.findIndex(from2), child = content.maybeChild(index);
|
|
5620
5608
|
let { index: indexTo, offset: offsetTo } = content.findIndex(to);
|
|
@@ -5712,7 +5700,7 @@ function replaceThreeWay($from, $start, $end, $to, depth) {
|
|
|
5712
5700
|
addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);
|
|
5713
5701
|
}
|
|
5714
5702
|
addRange($to, null, depth, content);
|
|
5715
|
-
return new
|
|
5703
|
+
return new Fragment2(content);
|
|
5716
5704
|
}
|
|
5717
5705
|
function replaceTwoWay($from, $to, depth) {
|
|
5718
5706
|
let content = [];
|
|
@@ -5722,13 +5710,13 @@ function replaceTwoWay($from, $to, depth) {
|
|
|
5722
5710
|
addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);
|
|
5723
5711
|
}
|
|
5724
5712
|
addRange($to, null, depth, content);
|
|
5725
|
-
return new
|
|
5713
|
+
return new Fragment2(content);
|
|
5726
5714
|
}
|
|
5727
5715
|
function prepareSliceForReplace(slice2, $along) {
|
|
5728
5716
|
let extra = $along.depth - slice2.openStart, parent = $along.node(extra);
|
|
5729
5717
|
let node = parent.copy(slice2.content);
|
|
5730
5718
|
for (let i = extra - 1; i >= 0; i--)
|
|
5731
|
-
node = $along.node(i).copy(
|
|
5719
|
+
node = $along.node(i).copy(Fragment2.from(node));
|
|
5732
5720
|
return {
|
|
5733
5721
|
start: node.resolveNoCache(slice2.openStart + extra),
|
|
5734
5722
|
end: node.resolveNoCache(node.content.size - slice2.openEnd - extra)
|
|
@@ -6067,7 +6055,7 @@ var Node = class {
|
|
|
6067
6055
|
this.type = type;
|
|
6068
6056
|
this.attrs = attrs;
|
|
6069
6057
|
this.marks = marks;
|
|
6070
|
-
this.content = content ||
|
|
6058
|
+
this.content = content || Fragment2.empty;
|
|
6071
6059
|
}
|
|
6072
6060
|
/**
|
|
6073
6061
|
The array of this node's child nodes.
|
|
@@ -6372,7 +6360,7 @@ var Node = class {
|
|
|
6372
6360
|
can optionally pass `start` and `end` indices into the
|
|
6373
6361
|
replacement fragment.
|
|
6374
6362
|
*/
|
|
6375
|
-
canReplace(from2, to, replacement =
|
|
6363
|
+
canReplace(from2, to, replacement = Fragment2.empty, start = 0, end = replacement.childCount) {
|
|
6376
6364
|
let one = this.contentMatchAt(from2).matchFragment(replacement, start, end);
|
|
6377
6365
|
let two = one && one.matchFragment(this.content, to);
|
|
6378
6366
|
if (!two || !two.validEnd)
|
|
@@ -6454,7 +6442,7 @@ var Node = class {
|
|
|
6454
6442
|
throw new RangeError("Invalid text node in JSON");
|
|
6455
6443
|
return schema.text(json2.text, marks);
|
|
6456
6444
|
}
|
|
6457
|
-
let content =
|
|
6445
|
+
let content = Fragment2.fromJSON(schema, json2.content);
|
|
6458
6446
|
let node = schema.nodeType(json2.type).create(json2.attrs, content, marks);
|
|
6459
6447
|
node.type.checkAttrs(node.attrs);
|
|
6460
6448
|
return node;
|
|
@@ -6596,7 +6584,7 @@ var ContentMatch = class {
|
|
|
6596
6584
|
function search(match, types) {
|
|
6597
6585
|
let finished = match.matchFragment(after, startIndex);
|
|
6598
6586
|
if (finished && (!toEnd || finished.validEnd))
|
|
6599
|
-
return
|
|
6587
|
+
return Fragment2.from(types.map((tp) => tp.createAndFill()));
|
|
6600
6588
|
for (let i = 0; i < match.next.length; i++) {
|
|
6601
6589
|
let { type, next } = match.next[i];
|
|
6602
6590
|
if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {
|
|
@@ -7048,7 +7036,7 @@ var NodeType = class {
|
|
|
7048
7036
|
create(attrs = null, content, marks) {
|
|
7049
7037
|
if (this.isText)
|
|
7050
7038
|
throw new Error("NodeType.create can't construct text nodes");
|
|
7051
|
-
return new Node(this, this.computeAttrs(attrs),
|
|
7039
|
+
return new Node(this, this.computeAttrs(attrs), Fragment2.from(content), Mark.setFrom(marks));
|
|
7052
7040
|
}
|
|
7053
7041
|
/**
|
|
7054
7042
|
Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content
|
|
@@ -7056,7 +7044,7 @@ var NodeType = class {
|
|
|
7056
7044
|
if it doesn't match.
|
|
7057
7045
|
*/
|
|
7058
7046
|
createChecked(attrs = null, content, marks) {
|
|
7059
|
-
content =
|
|
7047
|
+
content = Fragment2.from(content);
|
|
7060
7048
|
this.checkContent(content);
|
|
7061
7049
|
return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));
|
|
7062
7050
|
}
|
|
@@ -7070,7 +7058,7 @@ var NodeType = class {
|
|
|
7070
7058
|
*/
|
|
7071
7059
|
createAndFill(attrs = null, content, marks) {
|
|
7072
7060
|
attrs = this.computeAttrs(attrs);
|
|
7073
|
-
content =
|
|
7061
|
+
content = Fragment2.from(content);
|
|
7074
7062
|
if (content.size) {
|
|
7075
7063
|
let before = this.contentMatch.fillBefore(content);
|
|
7076
7064
|
if (!before)
|
|
@@ -7078,7 +7066,7 @@ var NodeType = class {
|
|
|
7078
7066
|
content = before.append(content);
|
|
7079
7067
|
}
|
|
7080
7068
|
let matched = this.contentMatch.matchFragment(content);
|
|
7081
|
-
let after = matched && matched.fillBefore(
|
|
7069
|
+
let after = matched && matched.fillBefore(Fragment2.empty, true);
|
|
7082
7070
|
if (!after)
|
|
7083
7071
|
return null;
|
|
7084
7072
|
return new Node(this, attrs, content.append(after), Mark.setFrom(marks));
|
|
@@ -7542,7 +7530,7 @@ var NodeContext = class {
|
|
|
7542
7530
|
if (!this.match) {
|
|
7543
7531
|
if (!this.type)
|
|
7544
7532
|
return [];
|
|
7545
|
-
let fill = this.type.contentMatch.fillBefore(
|
|
7533
|
+
let fill = this.type.contentMatch.fillBefore(Fragment2.from(node));
|
|
7546
7534
|
if (fill) {
|
|
7547
7535
|
this.match = this.type.contentMatch.matchFragment(fill);
|
|
7548
7536
|
} else {
|
|
@@ -7568,9 +7556,9 @@ var NodeContext = class {
|
|
|
7568
7556
|
this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));
|
|
7569
7557
|
}
|
|
7570
7558
|
}
|
|
7571
|
-
let content =
|
|
7559
|
+
let content = Fragment2.from(this.content);
|
|
7572
7560
|
if (!openEnd && this.match)
|
|
7573
|
-
content = content.append(this.match.fillBefore(
|
|
7561
|
+
content = content.append(this.match.fillBefore(Fragment2.empty, true));
|
|
7574
7562
|
return this.type ? this.type.create(this.attrs, content, this.marks) : content;
|
|
7575
7563
|
}
|
|
7576
7564
|
inlineContext(node) {
|
|
@@ -8587,7 +8575,7 @@ function mapFragment(fragment, f, parent) {
|
|
|
8587
8575
|
child = f(child, parent, i);
|
|
8588
8576
|
mapped.push(child);
|
|
8589
8577
|
}
|
|
8590
|
-
return
|
|
8578
|
+
return Fragment2.fromArray(mapped);
|
|
8591
8579
|
}
|
|
8592
8580
|
var AddMarkStep = class extends Step {
|
|
8593
8581
|
/**
|
|
@@ -8704,7 +8692,7 @@ var AddNodeMarkStep = class extends Step {
|
|
|
8704
8692
|
if (!node)
|
|
8705
8693
|
return StepResult.fail("No node at mark step's position");
|
|
8706
8694
|
let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));
|
|
8707
|
-
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice(
|
|
8695
|
+
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice(Fragment2.from(updated), 0, node.isLeaf ? 0 : 1));
|
|
8708
8696
|
}
|
|
8709
8697
|
invert(doc3) {
|
|
8710
8698
|
let node = doc3.nodeAt(this.pos);
|
|
@@ -8750,7 +8738,7 @@ var RemoveNodeMarkStep = class extends Step {
|
|
|
8750
8738
|
if (!node)
|
|
8751
8739
|
return StepResult.fail("No node at mark step's position");
|
|
8752
8740
|
let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));
|
|
8753
|
-
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice(
|
|
8741
|
+
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice(Fragment2.from(updated), 0, node.isLeaf ? 0 : 1));
|
|
8754
8742
|
}
|
|
8755
8743
|
invert(doc3) {
|
|
8756
8744
|
let node = doc3.nodeAt(this.pos);
|
|
@@ -9015,7 +9003,7 @@ function clearIncompatible(tr2, pos, parentType, match = parentType.contentMatch
|
|
|
9015
9003
|
let m, newline = /\r?\n|\r/g, slice2;
|
|
9016
9004
|
while (m = newline.exec(child.text)) {
|
|
9017
9005
|
if (!slice2)
|
|
9018
|
-
slice2 = new Slice(
|
|
9006
|
+
slice2 = new Slice(Fragment2.from(parentType.schema.text(" ", parentType.allowedMarks(child.marks))), 0, 0);
|
|
9019
9007
|
replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice2));
|
|
9020
9008
|
}
|
|
9021
9009
|
}
|
|
@@ -9023,7 +9011,7 @@ function clearIncompatible(tr2, pos, parentType, match = parentType.contentMatch
|
|
|
9023
9011
|
cur = end;
|
|
9024
9012
|
}
|
|
9025
9013
|
if (!match.validEnd) {
|
|
9026
|
-
let fill = match.fillBefore(
|
|
9014
|
+
let fill = match.fillBefore(Fragment2.empty, true);
|
|
9027
9015
|
tr2.replace(cur, cur, new Slice(fill, 0, 0));
|
|
9028
9016
|
}
|
|
9029
9017
|
for (let i = replSteps.length - 1; i >= 0; i--)
|
|
@@ -9049,20 +9037,20 @@ function lift(tr2, range, target) {
|
|
|
9049
9037
|
let { $from, $to, depth } = range;
|
|
9050
9038
|
let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);
|
|
9051
9039
|
let start = gapStart, end = gapEnd;
|
|
9052
|
-
let before =
|
|
9040
|
+
let before = Fragment2.empty, openStart = 0;
|
|
9053
9041
|
for (let d = depth, splitting = false; d > target; d--)
|
|
9054
9042
|
if (splitting || $from.index(d) > 0) {
|
|
9055
9043
|
splitting = true;
|
|
9056
|
-
before =
|
|
9044
|
+
before = Fragment2.from($from.node(d).copy(before));
|
|
9057
9045
|
openStart++;
|
|
9058
9046
|
} else {
|
|
9059
9047
|
start--;
|
|
9060
9048
|
}
|
|
9061
|
-
let after =
|
|
9049
|
+
let after = Fragment2.empty, openEnd = 0;
|
|
9062
9050
|
for (let d = depth, splitting = false; d > target; d--)
|
|
9063
9051
|
if (splitting || $to.after(d + 1) < $to.end(d)) {
|
|
9064
9052
|
splitting = true;
|
|
9065
|
-
after =
|
|
9053
|
+
after = Fragment2.from($to.node(d).copy(after));
|
|
9066
9054
|
openEnd++;
|
|
9067
9055
|
} else {
|
|
9068
9056
|
end++;
|
|
@@ -9102,14 +9090,14 @@ function findWrappingInside(range, type) {
|
|
|
9102
9090
|
return inside;
|
|
9103
9091
|
}
|
|
9104
9092
|
function wrap(tr2, range, wrappers) {
|
|
9105
|
-
let content =
|
|
9093
|
+
let content = Fragment2.empty;
|
|
9106
9094
|
for (let i = wrappers.length - 1; i >= 0; i--) {
|
|
9107
9095
|
if (content.size) {
|
|
9108
9096
|
let match = wrappers[i].type.contentMatch.matchFragment(content);
|
|
9109
9097
|
if (!match || !match.validEnd)
|
|
9110
9098
|
throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper");
|
|
9111
9099
|
}
|
|
9112
|
-
content =
|
|
9100
|
+
content = Fragment2.from(wrappers[i].type.create(wrappers[i].attrs, content));
|
|
9113
9101
|
}
|
|
9114
9102
|
let start = range.start, end = range.end;
|
|
9115
9103
|
tr2.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));
|
|
@@ -9134,7 +9122,7 @@ function setBlockType(tr2, from2, to, type, attrs) {
|
|
|
9134
9122
|
clearIncompatible(tr2, tr2.mapping.slice(mapFrom).map(pos, 1), type, void 0, convertNewlines === null);
|
|
9135
9123
|
let mapping = tr2.mapping.slice(mapFrom);
|
|
9136
9124
|
let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);
|
|
9137
|
-
tr2.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(
|
|
9125
|
+
tr2.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment2.from(type.create(attrsHere, null, node.marks)), 0, 0), 1, true));
|
|
9138
9126
|
if (convertNewlines === true)
|
|
9139
9127
|
replaceNewlines(tr2, node, pos, mapFrom);
|
|
9140
9128
|
return false;
|
|
@@ -9175,7 +9163,7 @@ function setNodeMarkup(tr2, pos, type, attrs, marks) {
|
|
|
9175
9163
|
return tr2.replaceWith(pos, pos + node.nodeSize, newNode);
|
|
9176
9164
|
if (!type.validContent(node.content))
|
|
9177
9165
|
throw new RangeError("Invalid content for node type " + type.name);
|
|
9178
|
-
tr2.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(
|
|
9166
|
+
tr2.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment2.from(newNode), 0, 0), 1, true));
|
|
9179
9167
|
}
|
|
9180
9168
|
function canSplit(doc3, pos, depth = 1, typesAfter) {
|
|
9181
9169
|
let $pos = doc3.resolve(pos), base2 = $pos.depth - depth;
|
|
@@ -9199,11 +9187,11 @@ function canSplit(doc3, pos, depth = 1, typesAfter) {
|
|
|
9199
9187
|
return $pos.node(base2).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base2 + 1).type);
|
|
9200
9188
|
}
|
|
9201
9189
|
function split(tr2, pos, depth = 1, typesAfter) {
|
|
9202
|
-
let $pos = tr2.doc.resolve(pos), before =
|
|
9190
|
+
let $pos = tr2.doc.resolve(pos), before = Fragment2.empty, after = Fragment2.empty;
|
|
9203
9191
|
for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {
|
|
9204
|
-
before =
|
|
9192
|
+
before = Fragment2.from($pos.node(d).copy(before));
|
|
9205
9193
|
let typeAfter = typesAfter && typesAfter[i];
|
|
9206
|
-
after =
|
|
9194
|
+
after = Fragment2.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));
|
|
9207
9195
|
}
|
|
9208
9196
|
tr2.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));
|
|
9209
9197
|
}
|
|
@@ -9342,7 +9330,7 @@ var Fitter = class {
|
|
|
9342
9330
|
this.$to = $to;
|
|
9343
9331
|
this.unplaced = unplaced;
|
|
9344
9332
|
this.frontier = [];
|
|
9345
|
-
this.placed =
|
|
9333
|
+
this.placed = Fragment2.empty;
|
|
9346
9334
|
for (let i = 0; i <= $from.depth; i++) {
|
|
9347
9335
|
let node = $from.node(i);
|
|
9348
9336
|
this.frontier.push({
|
|
@@ -9351,7 +9339,7 @@ var Fitter = class {
|
|
|
9351
9339
|
});
|
|
9352
9340
|
}
|
|
9353
9341
|
for (let i = $from.depth; i > 0; i--)
|
|
9354
|
-
this.placed =
|
|
9342
|
+
this.placed = Fragment2.from($from.node(i).copy(this.placed));
|
|
9355
9343
|
}
|
|
9356
9344
|
get depth() {
|
|
9357
9345
|
return this.frontier.length - 1;
|
|
@@ -9408,7 +9396,7 @@ var Fitter = class {
|
|
|
9408
9396
|
let first2 = fragment.firstChild;
|
|
9409
9397
|
for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {
|
|
9410
9398
|
let { type, match } = this.frontier[frontierDepth], wrap2, inject = null;
|
|
9411
|
-
if (pass == 1 && (first2 ? match.matchType(first2.type) || (inject = match.fillBefore(
|
|
9399
|
+
if (pass == 1 && (first2 ? match.matchType(first2.type) || (inject = match.fillBefore(Fragment2.from(first2), false)) : parent && type.compatibleContent(parent.type)))
|
|
9412
9400
|
return { sliceDepth, frontierDepth, parent, inject };
|
|
9413
9401
|
else if (pass == 2 && first2 && (wrap2 = match.findWrapping(first2.type)))
|
|
9414
9402
|
return { sliceDepth, frontierDepth, parent, wrap: wrap2 };
|
|
@@ -9468,7 +9456,7 @@ var Fitter = class {
|
|
|
9468
9456
|
let toEnd = taken == fragment.childCount;
|
|
9469
9457
|
if (!toEnd)
|
|
9470
9458
|
openEndCount = -1;
|
|
9471
|
-
this.placed = addToFragment(this.placed, frontierDepth,
|
|
9459
|
+
this.placed = addToFragment(this.placed, frontierDepth, Fragment2.from(add));
|
|
9472
9460
|
this.frontier[frontierDepth].match = match;
|
|
9473
9461
|
if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)
|
|
9474
9462
|
this.closeFrontierNode();
|
|
@@ -9525,12 +9513,12 @@ var Fitter = class {
|
|
|
9525
9513
|
openFrontierNode(type, attrs = null, content) {
|
|
9526
9514
|
let top = this.frontier[this.depth];
|
|
9527
9515
|
top.match = top.match.matchType(type);
|
|
9528
|
-
this.placed = addToFragment(this.placed, this.depth,
|
|
9516
|
+
this.placed = addToFragment(this.placed, this.depth, Fragment2.from(type.create(attrs, content)));
|
|
9529
9517
|
this.frontier.push({ type, match: type.contentMatch });
|
|
9530
9518
|
}
|
|
9531
9519
|
closeFrontierNode() {
|
|
9532
9520
|
let open = this.frontier.pop();
|
|
9533
|
-
let add = open.match.fillBefore(
|
|
9521
|
+
let add = open.match.fillBefore(Fragment2.empty, true);
|
|
9534
9522
|
if (add.childCount)
|
|
9535
9523
|
this.placed = addToFragment(this.placed, this.frontier.length, add);
|
|
9536
9524
|
}
|
|
@@ -9559,7 +9547,7 @@ function closeNodeStart(node, openStart, openEnd) {
|
|
|
9559
9547
|
if (openStart > 0) {
|
|
9560
9548
|
frag = node.type.contentMatch.fillBefore(frag).append(frag);
|
|
9561
9549
|
if (openEnd <= 0)
|
|
9562
|
-
frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(
|
|
9550
|
+
frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment2.empty, true));
|
|
9563
9551
|
}
|
|
9564
9552
|
return node.copy(frag);
|
|
9565
9553
|
}
|
|
@@ -9651,7 +9639,7 @@ function closeFragment(fragment, depth, oldOpen, newOpen, parent) {
|
|
|
9651
9639
|
if (depth > newOpen) {
|
|
9652
9640
|
let match = parent.contentMatchAt(0);
|
|
9653
9641
|
let start = match.fillBefore(fragment).append(fragment);
|
|
9654
|
-
fragment = start.append(match.matchFragment(start).fillBefore(
|
|
9642
|
+
fragment = start.append(match.matchFragment(start).fillBefore(Fragment2.empty, true));
|
|
9655
9643
|
}
|
|
9656
9644
|
return fragment;
|
|
9657
9645
|
}
|
|
@@ -9661,7 +9649,7 @@ function replaceRangeWith(tr2, from2, to, node) {
|
|
|
9661
9649
|
if (point != null)
|
|
9662
9650
|
from2 = to = point;
|
|
9663
9651
|
}
|
|
9664
|
-
tr2.replaceRange(from2, to, new Slice(
|
|
9652
|
+
tr2.replaceRange(from2, to, new Slice(Fragment2.from(node), 0, 0));
|
|
9665
9653
|
}
|
|
9666
9654
|
function deleteRange(tr2, from2, to) {
|
|
9667
9655
|
let $from = tr2.doc.resolve(from2), $to = tr2.doc.resolve(to);
|
|
@@ -9709,7 +9697,7 @@ var AttrStep = class extends Step {
|
|
|
9709
9697
|
attrs[name] = node.attrs[name];
|
|
9710
9698
|
attrs[this.attr] = this.value;
|
|
9711
9699
|
let updated = node.type.create(attrs, null, node.marks);
|
|
9712
|
-
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice(
|
|
9700
|
+
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice(Fragment2.from(updated), 0, node.isLeaf ? 0 : 1));
|
|
9713
9701
|
}
|
|
9714
9702
|
getMap() {
|
|
9715
9703
|
return StepMap.empty;
|
|
@@ -9844,7 +9832,7 @@ var Transform = class {
|
|
|
9844
9832
|
fragment, node, or array of nodes.
|
|
9845
9833
|
*/
|
|
9846
9834
|
replaceWith(from2, to, content) {
|
|
9847
|
-
return this.replace(from2, to, new Slice(
|
|
9835
|
+
return this.replace(from2, to, new Slice(Fragment2.from(content), 0, 0));
|
|
9848
9836
|
}
|
|
9849
9837
|
/**
|
|
9850
9838
|
Delete the content between the given positions.
|
|
@@ -10346,7 +10334,7 @@ var NodeSelection = class extends Selection {
|
|
|
10346
10334
|
return new NodeSelection($pos);
|
|
10347
10335
|
}
|
|
10348
10336
|
content() {
|
|
10349
|
-
return new Slice(
|
|
10337
|
+
return new Slice(Fragment2.from(this.node), 0, 0);
|
|
10350
10338
|
}
|
|
10351
10339
|
eq(other) {
|
|
10352
10340
|
return other instanceof NodeSelection && other.anchor == this.anchor;
|
|
@@ -12168,7 +12156,7 @@ var NodeViewDesc = class extends ViewDesc {
|
|
|
12168
12156
|
}
|
|
12169
12157
|
}
|
|
12170
12158
|
if (!rule.contentElement)
|
|
12171
|
-
rule.getContent = () =>
|
|
12159
|
+
rule.getContent = () => Fragment2.empty;
|
|
12172
12160
|
}
|
|
12173
12161
|
return rule;
|
|
12174
12162
|
}
|
|
@@ -13487,7 +13475,7 @@ function parseFromClipboard(view, text, html, plainText, $context) {
|
|
|
13487
13475
|
text = f(text, inCode || plainText, view);
|
|
13488
13476
|
});
|
|
13489
13477
|
if (inCode)
|
|
13490
|
-
return text ? new Slice(
|
|
13478
|
+
return text ? new Slice(Fragment2.from(view.state.schema.text(text.replace(/\r\n?/g, "\n"))), 0, 0) : Slice.empty;
|
|
13491
13479
|
let parsed = view.someProp("clipboardTextParser", (f) => f(text, $context, plainText, view));
|
|
13492
13480
|
if (parsed) {
|
|
13493
13481
|
slice2 = parsed;
|
|
@@ -13576,13 +13564,13 @@ function normalizeSiblings(fragment, $context) {
|
|
|
13576
13564
|
}
|
|
13577
13565
|
});
|
|
13578
13566
|
if (result)
|
|
13579
|
-
return
|
|
13567
|
+
return Fragment2.from(result);
|
|
13580
13568
|
}
|
|
13581
13569
|
return fragment;
|
|
13582
13570
|
}
|
|
13583
13571
|
function withWrappers(node, wrap2, from2 = 0) {
|
|
13584
13572
|
for (let i = wrap2.length - 1; i >= from2; i--)
|
|
13585
|
-
node = wrap2[i].create(null,
|
|
13573
|
+
node = wrap2[i].create(null, Fragment2.from(node));
|
|
13586
13574
|
return node;
|
|
13587
13575
|
}
|
|
13588
13576
|
function addToSibling(wrap2, lastWrap, node, sibling, depth) {
|
|
@@ -13592,14 +13580,14 @@ function addToSibling(wrap2, lastWrap, node, sibling, depth) {
|
|
|
13592
13580
|
return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));
|
|
13593
13581
|
let match = sibling.contentMatchAt(sibling.childCount);
|
|
13594
13582
|
if (match.matchType(depth == wrap2.length - 1 ? node.type : wrap2[depth + 1]))
|
|
13595
|
-
return sibling.copy(sibling.content.append(
|
|
13583
|
+
return sibling.copy(sibling.content.append(Fragment2.from(withWrappers(node, wrap2, depth + 1))));
|
|
13596
13584
|
}
|
|
13597
13585
|
}
|
|
13598
13586
|
function closeRight(node, depth) {
|
|
13599
13587
|
if (depth == 0)
|
|
13600
13588
|
return node;
|
|
13601
13589
|
let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));
|
|
13602
|
-
let fill = node.contentMatchAt(node.childCount).fillBefore(
|
|
13590
|
+
let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment2.empty, true);
|
|
13603
13591
|
return node.copy(fragment.append(fill));
|
|
13604
13592
|
}
|
|
13605
13593
|
function closeRange(fragment, side, from2, to, depth, openEnd) {
|
|
@@ -13609,7 +13597,7 @@ function closeRange(fragment, side, from2, to, depth, openEnd) {
|
|
|
13609
13597
|
if (depth < to - 1)
|
|
13610
13598
|
inner = closeRange(inner, side, from2, to, depth + 1, openEnd);
|
|
13611
13599
|
if (depth >= from2)
|
|
13612
|
-
inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner) : inner.append(node.contentMatchAt(node.childCount).fillBefore(
|
|
13600
|
+
inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner) : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment2.empty, true));
|
|
13613
13601
|
return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));
|
|
13614
13602
|
}
|
|
13615
13603
|
function closeSlice(slice2, openStart, openEnd) {
|
|
@@ -13679,7 +13667,7 @@ function addContext(slice2, context) {
|
|
|
13679
13667
|
let type = schema.nodes[array[i]];
|
|
13680
13668
|
if (!type || type.hasRequiredAttrs())
|
|
13681
13669
|
break;
|
|
13682
|
-
content =
|
|
13670
|
+
content = Fragment2.from(type.create(array[i + 1], content));
|
|
13683
13671
|
openStart++;
|
|
13684
13672
|
openEnd++;
|
|
13685
13673
|
}
|
|
@@ -15540,7 +15528,7 @@ function isMarkChange(cur, prev) {
|
|
|
15540
15528
|
let updated = [];
|
|
15541
15529
|
for (let i = 0; i < prev.childCount; i++)
|
|
15542
15530
|
updated.push(update(prev.child(i)));
|
|
15543
|
-
if (
|
|
15531
|
+
if (Fragment2.from(updated).eq(cur))
|
|
15544
15532
|
return { mark, type };
|
|
15545
15533
|
}
|
|
15546
15534
|
function looksLikeBackspace(old, start, end, $newStart, $newEnd) {
|
|
@@ -16650,10 +16638,10 @@ function deleteBarrier(state, $cut, dispatch2, dir) {
|
|
|
16650
16638
|
let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);
|
|
16651
16639
|
if (canDelAfter && (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) && match.matchType(conn[0] || after.type).validEnd) {
|
|
16652
16640
|
if (dispatch2) {
|
|
16653
|
-
let end = $cut.pos + after.nodeSize, wrap2 =
|
|
16641
|
+
let end = $cut.pos + after.nodeSize, wrap2 = Fragment2.empty;
|
|
16654
16642
|
for (let i = conn.length - 1; i >= 0; i--)
|
|
16655
|
-
wrap2 =
|
|
16656
|
-
wrap2 =
|
|
16643
|
+
wrap2 = Fragment2.from(conn[i].create(null, wrap2));
|
|
16644
|
+
wrap2 = Fragment2.from(before.copy(wrap2));
|
|
16657
16645
|
let tr2 = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap2, 1, 0), conn.length, true));
|
|
16658
16646
|
let $joinAt = tr2.doc.resolve(end + 2 * conn.length);
|
|
16659
16647
|
if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
|
|
@@ -16682,9 +16670,9 @@ function deleteBarrier(state, $cut, dispatch2, dir) {
|
|
|
16682
16670
|
afterDepth++;
|
|
16683
16671
|
if (at.canReplace(at.childCount, at.childCount, afterText.content)) {
|
|
16684
16672
|
if (dispatch2) {
|
|
16685
|
-
let end =
|
|
16673
|
+
let end = Fragment2.empty;
|
|
16686
16674
|
for (let i = wrap2.length - 1; i >= 0; i--)
|
|
16687
|
-
end =
|
|
16675
|
+
end = Fragment2.from(wrap2[i].copy(end));
|
|
16688
16676
|
let tr2 = state.tr.step(new ReplaceAroundStep($cut.pos - wrap2.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap2.length, 0), 0, true));
|
|
16689
16677
|
dispatch2(tr2.scrollIntoView());
|
|
16690
16678
|
}
|
|
@@ -16789,9 +16777,9 @@ function wrapRangeInList(tr2, range, listType, attrs = null) {
|
|
|
16789
16777
|
return true;
|
|
16790
16778
|
}
|
|
16791
16779
|
function doWrapInList(tr2, range, wrappers, joinBefore, listType) {
|
|
16792
|
-
let content =
|
|
16780
|
+
let content = Fragment2.empty;
|
|
16793
16781
|
for (let i = wrappers.length - 1; i >= 0; i--)
|
|
16794
|
-
content =
|
|
16782
|
+
content = Fragment2.from(wrappers[i].type.create(wrappers[i].attrs, content));
|
|
16795
16783
|
tr2.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new Slice(content, 0, 0), wrappers.length, true));
|
|
16796
16784
|
let found2 = 0;
|
|
16797
16785
|
for (let i = 0; i < wrappers.length; i++)
|
|
@@ -16825,7 +16813,7 @@ function liftListItem(itemType) {
|
|
|
16825
16813
|
function liftToOuterList(state, dispatch2, itemType, range) {
|
|
16826
16814
|
let tr2 = state.tr, end = range.end, endOfList = range.$to.end(range.depth);
|
|
16827
16815
|
if (end < endOfList) {
|
|
16828
|
-
tr2.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(
|
|
16816
|
+
tr2.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(Fragment2.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));
|
|
16829
16817
|
range = new NodeRange(tr2.doc.resolve(range.$from.pos), tr2.doc.resolve(endOfList), range.depth);
|
|
16830
16818
|
}
|
|
16831
16819
|
const target = liftTarget(range);
|
|
@@ -16849,10 +16837,10 @@ function liftOutOfList(state, dispatch2, range) {
|
|
|
16849
16837
|
return false;
|
|
16850
16838
|
let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;
|
|
16851
16839
|
let parent = $start.node(-1), indexBefore = $start.index(-1);
|
|
16852
|
-
if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ?
|
|
16840
|
+
if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment2.empty : Fragment2.from(list))))
|
|
16853
16841
|
return false;
|
|
16854
16842
|
let start = $start.pos, end = start + item.nodeSize;
|
|
16855
|
-
tr2.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ?
|
|
16843
|
+
tr2.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ? Fragment2.empty : Fragment2.from(list.copy(Fragment2.empty))).append(atEnd ? Fragment2.empty : Fragment2.from(list.copy(Fragment2.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));
|
|
16856
16844
|
dispatch2(tr2.scrollIntoView());
|
|
16857
16845
|
return true;
|
|
16858
16846
|
}
|
|
@@ -16870,8 +16858,8 @@ function sinkListItem(itemType) {
|
|
|
16870
16858
|
return false;
|
|
16871
16859
|
if (dispatch2) {
|
|
16872
16860
|
let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;
|
|
16873
|
-
let inner =
|
|
16874
|
-
let slice2 = new Slice(
|
|
16861
|
+
let inner = Fragment2.from(nestedBefore ? itemType.create() : null);
|
|
16862
|
+
let slice2 = new Slice(Fragment2.from(itemType.create(null, Fragment2.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);
|
|
16875
16863
|
let before = range.start, after = range.end;
|
|
16876
16864
|
dispatch2(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice2, 1, true)).scrollIntoView());
|
|
16877
16865
|
}
|
|
@@ -17089,7 +17077,7 @@ function elementFromString(value) {
|
|
|
17089
17077
|
return removeWhitespaces(html);
|
|
17090
17078
|
}
|
|
17091
17079
|
function createNodeFromContent(content, schema, options) {
|
|
17092
|
-
if (content instanceof Node || content instanceof
|
|
17080
|
+
if (content instanceof Node || content instanceof Fragment2) {
|
|
17093
17081
|
return content;
|
|
17094
17082
|
}
|
|
17095
17083
|
options = {
|
|
@@ -17103,7 +17091,7 @@ function createNodeFromContent(content, schema, options) {
|
|
|
17103
17091
|
try {
|
|
17104
17092
|
const isArrayContent = Array.isArray(content) && content.length > 0;
|
|
17105
17093
|
if (isArrayContent) {
|
|
17106
|
-
return
|
|
17094
|
+
return Fragment2.fromArray(content.map((item) => schema.nodeFromJSON(item)));
|
|
17107
17095
|
}
|
|
17108
17096
|
const node = schema.nodeFromJSON(content);
|
|
17109
17097
|
if (options.errorOnInvalidContent) {
|
|
@@ -18237,7 +18225,7 @@ function inputRulesPlugin(props) {
|
|
|
18237
18225
|
if (typeof text === "string") {
|
|
18238
18226
|
text = text;
|
|
18239
18227
|
} else {
|
|
18240
|
-
text = getHTMLFromFragment(
|
|
18228
|
+
text = getHTMLFromFragment(Fragment2.from(text), state.schema);
|
|
18241
18229
|
}
|
|
18242
18230
|
const { from: from2 } = simulatedInputMeta;
|
|
18243
18231
|
const to = from2 + text.length;
|
|
@@ -18615,7 +18603,7 @@ function pasteRulesPlugin(props) {
|
|
|
18615
18603
|
if (typeof text === "string") {
|
|
18616
18604
|
text = text;
|
|
18617
18605
|
} else {
|
|
18618
|
-
text = getHTMLFromFragment(
|
|
18606
|
+
text = getHTMLFromFragment(Fragment2.from(text), state.schema);
|
|
18619
18607
|
}
|
|
18620
18608
|
const { from: from22 } = simulatedPasteMeta;
|
|
18621
18609
|
const to2 = from22 + text.length;
|
|
@@ -19273,7 +19261,7 @@ var insertContentAt = (position, value, options) => ({ tr: tr2, dispatch: dispat
|
|
|
19273
19261
|
if (isOnlyTextContent) {
|
|
19274
19262
|
if (Array.isArray(value)) {
|
|
19275
19263
|
newContent = value.map((v) => v.text || "").join("");
|
|
19276
|
-
} else if (value instanceof
|
|
19264
|
+
} else if (value instanceof Fragment2) {
|
|
19277
19265
|
let text = "";
|
|
19278
19266
|
value.forEach((node) => {
|
|
19279
19267
|
if (node.text) {
|
|
@@ -19740,10 +19728,10 @@ var splitListItem = (typeOrName, overrideAttrs = {}) => ({ tr: tr2, state, dispa
|
|
|
19740
19728
|
return false;
|
|
19741
19729
|
}
|
|
19742
19730
|
if (dispatch2) {
|
|
19743
|
-
let wrap2 =
|
|
19731
|
+
let wrap2 = Fragment2.empty;
|
|
19744
19732
|
const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;
|
|
19745
19733
|
for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {
|
|
19746
|
-
wrap2 =
|
|
19734
|
+
wrap2 = Fragment2.from($from.node(d).copy(wrap2));
|
|
19747
19735
|
}
|
|
19748
19736
|
const depthAfter = (
|
|
19749
19737
|
// eslint-disable-next-line no-nested-ternary
|
|
@@ -19754,7 +19742,7 @@ var splitListItem = (typeOrName, overrideAttrs = {}) => ({ tr: tr2, state, dispa
|
|
|
19754
19742
|
...overrideAttrs
|
|
19755
19743
|
};
|
|
19756
19744
|
const nextType2 = ((_a = type.contentMatch.defaultType) == null ? void 0 : _a.createAndFill(newNextTypeAttributes2)) || void 0;
|
|
19757
|
-
wrap2 = wrap2.append(
|
|
19745
|
+
wrap2 = wrap2.append(Fragment2.from(type.createAndFill(null, nextType2) || void 0));
|
|
19758
19746
|
const start = $from.before($from.depth - (depthBefore - 1));
|
|
19759
19747
|
tr2.replace(start, $from.after(-depthAfter), new Slice(wrap2, 4 - depthBefore, 0));
|
|
19760
19748
|
let sel = -1;
|
|
@@ -21385,7 +21373,7 @@ function markPasteRule(config) {
|
|
|
21385
21373
|
}
|
|
21386
21374
|
|
|
21387
21375
|
// ../../node_modules/@tiptap/react/dist/index.js
|
|
21388
|
-
var
|
|
21376
|
+
var import_react15 = __toESM(require_react(), 1);
|
|
21389
21377
|
var mergeRefs = (...refs) => {
|
|
21390
21378
|
return (node) => {
|
|
21391
21379
|
refs.forEach((ref) => {
|
|
@@ -21445,11 +21433,11 @@ function getInstance() {
|
|
|
21445
21433
|
}
|
|
21446
21434
|
};
|
|
21447
21435
|
}
|
|
21448
|
-
var PureEditorContent = class extends
|
|
21436
|
+
var PureEditorContent = class extends React16__default.Component {
|
|
21449
21437
|
constructor(props) {
|
|
21450
21438
|
var _a;
|
|
21451
21439
|
super(props);
|
|
21452
|
-
this.editorContentRef =
|
|
21440
|
+
this.editorContentRef = React16__default.createRef();
|
|
21453
21441
|
this.initialized = false;
|
|
21454
21442
|
this.state = {
|
|
21455
21443
|
hasContentComponentInitialized: Boolean((_a = props.editor) == null ? void 0 : _a.contentComponent)
|
|
@@ -21527,17 +21515,17 @@ var PureEditorContent = class extends React17__default.Component {
|
|
|
21527
21515
|
};
|
|
21528
21516
|
var EditorContentWithKey = forwardRef(
|
|
21529
21517
|
(props, ref) => {
|
|
21530
|
-
const key =
|
|
21518
|
+
const key = React16__default.useMemo(() => {
|
|
21531
21519
|
return Math.floor(Math.random() * 4294967295).toString();
|
|
21532
21520
|
}, [props.editor]);
|
|
21533
|
-
return
|
|
21521
|
+
return React16__default.createElement(PureEditorContent, {
|
|
21534
21522
|
key,
|
|
21535
21523
|
innerRef: ref,
|
|
21536
21524
|
...props
|
|
21537
21525
|
});
|
|
21538
21526
|
}
|
|
21539
21527
|
);
|
|
21540
|
-
var EditorContent =
|
|
21528
|
+
var EditorContent = React16__default.memo(EditorContentWithKey);
|
|
21541
21529
|
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
21542
21530
|
var EditorStateManager = class {
|
|
21543
21531
|
constructor(initialEditor) {
|
|
@@ -21604,7 +21592,7 @@ function useEditorState(options) {
|
|
|
21604
21592
|
editorStateManager.getSnapshot,
|
|
21605
21593
|
editorStateManager.getServerSnapshot,
|
|
21606
21594
|
options.selector,
|
|
21607
|
-
(_a = options.equalityFn) != null ? _a :
|
|
21595
|
+
(_a = options.equalityFn) != null ? _a : import_react15.default
|
|
21608
21596
|
);
|
|
21609
21597
|
useIsomorphicLayoutEffect(() => {
|
|
21610
21598
|
return editorStateManager.watch(options.editor);
|
|
@@ -21881,7 +21869,7 @@ var ReactNodeViewContext = createContext({
|
|
|
21881
21869
|
}
|
|
21882
21870
|
});
|
|
21883
21871
|
var useReactNodeView = () => useContext(ReactNodeViewContext);
|
|
21884
|
-
|
|
21872
|
+
React16__default.forwardRef((props, ref) => {
|
|
21885
21873
|
const { onDragStart } = useReactNodeView();
|
|
21886
21874
|
const Tag = props.as || "div";
|
|
21887
21875
|
return (
|
|
@@ -21901,7 +21889,7 @@ React17__default.forwardRef((props, ref) => {
|
|
|
21901
21889
|
)
|
|
21902
21890
|
);
|
|
21903
21891
|
});
|
|
21904
|
-
|
|
21892
|
+
React16__default.createContext({
|
|
21905
21893
|
markViewContentRef: () => {
|
|
21906
21894
|
}
|
|
21907
21895
|
});
|
|
@@ -25200,9 +25188,9 @@ function beforeinput(view, event) {
|
|
|
25200
25188
|
let insert = $from.parent.contentMatchAt($from.index()).findWrapping(view.state.schema.nodes.text);
|
|
25201
25189
|
if (!insert)
|
|
25202
25190
|
return false;
|
|
25203
|
-
let frag =
|
|
25191
|
+
let frag = Fragment2.empty;
|
|
25204
25192
|
for (let i = insert.length - 1; i >= 0; i--)
|
|
25205
|
-
frag =
|
|
25193
|
+
frag = Fragment2.from(insert[i].createAndFill(null, frag));
|
|
25206
25194
|
let tr2 = view.state.tr.replace($from.pos, $from.pos, new Slice(frag, 0, 0));
|
|
25207
25195
|
tr2.setSelection(TextSelection.near(tr2.doc.resolve($from.pos + 1)));
|
|
25208
25196
|
view.dispatch(tr2);
|
|
@@ -26882,10 +26870,10 @@ var CellSelection = class _CellSelection extends Selection {
|
|
|
26882
26870
|
}
|
|
26883
26871
|
rowContent.push(cell);
|
|
26884
26872
|
}
|
|
26885
|
-
rows.push(table.child(row).copy(
|
|
26873
|
+
rows.push(table.child(row).copy(Fragment2.from(rowContent)));
|
|
26886
26874
|
}
|
|
26887
26875
|
const fragment = this.isColSelection() && this.isRowSelection() ? table : rows;
|
|
26888
|
-
return new Slice(
|
|
26876
|
+
return new Slice(Fragment2.from(fragment), 1, 1);
|
|
26889
26877
|
}
|
|
26890
26878
|
replace(tr2, content = Slice.empty) {
|
|
26891
26879
|
const mapFrom = tr2.steps.length, ranges = this.ranges;
|
|
@@ -26905,7 +26893,7 @@ var CellSelection = class _CellSelection extends Selection {
|
|
|
26905
26893
|
tr2.setSelection(sel);
|
|
26906
26894
|
}
|
|
26907
26895
|
replaceWith(tr2, node) {
|
|
26908
|
-
this.replace(tr2, new Slice(
|
|
26896
|
+
this.replace(tr2, new Slice(Fragment2.from(node), 0, 0));
|
|
26909
26897
|
}
|
|
26910
26898
|
forEachCell(f) {
|
|
26911
26899
|
const table = this.$anchorCell.node(-1);
|
|
@@ -27453,7 +27441,7 @@ function mergeCells(state, dispatch2) {
|
|
|
27453
27441
|
if (dispatch2) {
|
|
27454
27442
|
const tr2 = state.tr;
|
|
27455
27443
|
const seen = {};
|
|
27456
|
-
let content =
|
|
27444
|
+
let content = Fragment2.empty;
|
|
27457
27445
|
let mergedPos;
|
|
27458
27446
|
let mergedCell;
|
|
27459
27447
|
for (let row = rect.top; row < rect.bottom; row++) {
|
|
@@ -27834,14 +27822,14 @@ function ensureRectangular(schema, rows) {
|
|
|
27834
27822
|
width = Math.max(width, widths[r2]);
|
|
27835
27823
|
for (let r2 = 0; r2 < widths.length; r2++) {
|
|
27836
27824
|
if (r2 >= rows.length)
|
|
27837
|
-
rows.push(
|
|
27825
|
+
rows.push(Fragment2.empty);
|
|
27838
27826
|
if (widths[r2] < width) {
|
|
27839
27827
|
const empty2 = tableNodeTypes(schema).cell.createAndFill();
|
|
27840
27828
|
const cells = [];
|
|
27841
27829
|
for (let i = widths[r2]; i < width; i++) {
|
|
27842
27830
|
cells.push(empty2);
|
|
27843
27831
|
}
|
|
27844
|
-
rows[r2] = rows[r2].append(
|
|
27832
|
+
rows[r2] = rows[r2].append(Fragment2.from(cells));
|
|
27845
27833
|
}
|
|
27846
27834
|
}
|
|
27847
27835
|
return { height: rows.length, width, rows };
|
|
@@ -27873,7 +27861,7 @@ function clipCells({ width, height, rows }, newWidth, newHeight) {
|
|
|
27873
27861
|
for (let j = 1; j < cell.attrs.rowspan; j++)
|
|
27874
27862
|
added[row + j] = (added[row + j] || 0) + cell.attrs.colspan;
|
|
27875
27863
|
}
|
|
27876
|
-
newRows.push(
|
|
27864
|
+
newRows.push(Fragment2.from(cells));
|
|
27877
27865
|
}
|
|
27878
27866
|
rows = newRows;
|
|
27879
27867
|
width = newWidth;
|
|
@@ -27894,7 +27882,7 @@ function clipCells({ width, height, rows }, newWidth, newHeight) {
|
|
|
27894
27882
|
);
|
|
27895
27883
|
cells.push(cell);
|
|
27896
27884
|
}
|
|
27897
|
-
newRows.push(
|
|
27885
|
+
newRows.push(Fragment2.from(cells));
|
|
27898
27886
|
}
|
|
27899
27887
|
rows = newRows;
|
|
27900
27888
|
height = newHeight;
|
|
@@ -27929,7 +27917,7 @@ function growTable(tr2, map2, table, start, width, height, mapFrom) {
|
|
|
27929
27917
|
header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
|
|
27930
27918
|
);
|
|
27931
27919
|
}
|
|
27932
|
-
const emptyRow = types.row.create(null,
|
|
27920
|
+
const emptyRow = types.row.create(null, Fragment2.from(cells)), rows = [];
|
|
27933
27921
|
for (let i = map2.height; i < height; i++)
|
|
27934
27922
|
rows.push(emptyRow);
|
|
27935
27923
|
tr2.insert(tr2.mapping.slice(mapFrom).map(start + table.nodeSize - 2), rows);
|
|
@@ -28138,7 +28126,7 @@ function handlePaste(view, _, slice2) {
|
|
|
28138
28126
|
width: 1,
|
|
28139
28127
|
height: 1,
|
|
28140
28128
|
rows: [
|
|
28141
|
-
|
|
28129
|
+
Fragment2.from(
|
|
28142
28130
|
fitSlice(tableNodeTypes(view.state.schema).cell, slice2)
|
|
28143
28131
|
)
|
|
28144
28132
|
]
|
|
@@ -43428,7 +43416,7 @@ var SlashCommandsExtension = Extension.create({
|
|
|
43428
43416
|
});
|
|
43429
43417
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
43430
43418
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
43431
|
-
var DropdownMenuSubTrigger =
|
|
43419
|
+
var DropdownMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
43432
43420
|
DropdownMenuPrimitive.SubTrigger,
|
|
43433
43421
|
{
|
|
43434
43422
|
ref,
|
|
@@ -43445,7 +43433,7 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
|
|
|
43445
43433
|
}
|
|
43446
43434
|
));
|
|
43447
43435
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
43448
|
-
var DropdownMenuSubContent =
|
|
43436
|
+
var DropdownMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
43449
43437
|
DropdownMenuPrimitive.SubContent,
|
|
43450
43438
|
{
|
|
43451
43439
|
ref,
|
|
@@ -43457,7 +43445,7 @@ var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) =
|
|
|
43457
43445
|
}
|
|
43458
43446
|
));
|
|
43459
43447
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
43460
|
-
var DropdownMenuContent =
|
|
43448
|
+
var DropdownMenuContent = React16.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
43461
43449
|
DropdownMenuPrimitive.Content,
|
|
43462
43450
|
{
|
|
43463
43451
|
ref,
|
|
@@ -43470,7 +43458,7 @@ var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
43470
43458
|
}
|
|
43471
43459
|
) }));
|
|
43472
43460
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
43473
|
-
var DropdownMenuItem =
|
|
43461
|
+
var DropdownMenuItem = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
43474
43462
|
DropdownMenuPrimitive.Item,
|
|
43475
43463
|
{
|
|
43476
43464
|
ref,
|
|
@@ -43483,7 +43471,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
43483
43471
|
}
|
|
43484
43472
|
));
|
|
43485
43473
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
43486
|
-
var DropdownMenuCheckboxItem =
|
|
43474
|
+
var DropdownMenuCheckboxItem = React16.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
43487
43475
|
DropdownMenuPrimitive.CheckboxItem,
|
|
43488
43476
|
{
|
|
43489
43477
|
ref,
|
|
@@ -43500,7 +43488,7 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, checke
|
|
|
43500
43488
|
}
|
|
43501
43489
|
));
|
|
43502
43490
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
43503
|
-
var DropdownMenuRadioItem =
|
|
43491
|
+
var DropdownMenuRadioItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
43504
43492
|
DropdownMenuPrimitive.RadioItem,
|
|
43505
43493
|
{
|
|
43506
43494
|
ref,
|
|
@@ -43516,7 +43504,7 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
|
|
|
43516
43504
|
}
|
|
43517
43505
|
));
|
|
43518
43506
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
43519
|
-
var DropdownMenuLabel =
|
|
43507
|
+
var DropdownMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
43520
43508
|
DropdownMenuPrimitive.Label,
|
|
43521
43509
|
{
|
|
43522
43510
|
ref,
|
|
@@ -43529,7 +43517,7 @@ var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
43529
43517
|
}
|
|
43530
43518
|
));
|
|
43531
43519
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
43532
|
-
var DropdownMenuSeparator =
|
|
43520
|
+
var DropdownMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
43533
43521
|
DropdownMenuPrimitive.Separator,
|
|
43534
43522
|
{
|
|
43535
43523
|
ref,
|
|
@@ -43565,7 +43553,7 @@ var tooltipVariants = cva(
|
|
|
43565
43553
|
);
|
|
43566
43554
|
var Tooltip = TooltipPrimitive.Root;
|
|
43567
43555
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
43568
|
-
var TooltipArrow =
|
|
43556
|
+
var TooltipArrow = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
43569
43557
|
TooltipPrimitive.Arrow,
|
|
43570
43558
|
{
|
|
43571
43559
|
ref,
|
|
@@ -43574,7 +43562,7 @@ var TooltipArrow = React17.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
43574
43562
|
}
|
|
43575
43563
|
));
|
|
43576
43564
|
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
|
43577
|
-
var TooltipContent =
|
|
43565
|
+
var TooltipContent = React16.forwardRef(({ className, variant, size, showArrow = false, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
43578
43566
|
TooltipPrimitive.Content,
|
|
43579
43567
|
{
|
|
43580
43568
|
ref,
|
|
@@ -43588,7 +43576,7 @@ var TooltipContent = React17.forwardRef(({ className, variant, size, showArrow =
|
|
|
43588
43576
|
}
|
|
43589
43577
|
));
|
|
43590
43578
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
43591
|
-
var SimpleTooltip =
|
|
43579
|
+
var SimpleTooltip = React16.forwardRef(
|
|
43592
43580
|
({
|
|
43593
43581
|
children,
|
|
43594
43582
|
content,
|
|
@@ -43688,7 +43676,7 @@ var popoverContentVariants = cva(
|
|
|
43688
43676
|
);
|
|
43689
43677
|
var Popover = PopoverPrimitive.Root;
|
|
43690
43678
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
43691
|
-
var PopoverContent =
|
|
43679
|
+
var PopoverContent = React16.forwardRef(({
|
|
43692
43680
|
className,
|
|
43693
43681
|
variant,
|
|
43694
43682
|
size,
|
|
@@ -43894,7 +43882,7 @@ var sliderThumbVariants = cva(
|
|
|
43894
43882
|
}
|
|
43895
43883
|
}
|
|
43896
43884
|
);
|
|
43897
|
-
var Slider =
|
|
43885
|
+
var Slider = React16.forwardRef(({
|
|
43898
43886
|
className,
|
|
43899
43887
|
size,
|
|
43900
43888
|
trackVariant,
|
|
@@ -43910,10 +43898,10 @@ var Slider = React17.forwardRef(({
|
|
|
43910
43898
|
disabled,
|
|
43911
43899
|
...props
|
|
43912
43900
|
}, ref) => {
|
|
43913
|
-
const [sliderValue, setSliderValue] =
|
|
43901
|
+
const [sliderValue, setSliderValue] = React16.useState(
|
|
43914
43902
|
value || defaultValue || [0]
|
|
43915
43903
|
);
|
|
43916
|
-
|
|
43904
|
+
React16.useEffect(() => {
|
|
43917
43905
|
if (value !== void 0) {
|
|
43918
43906
|
setSliderValue(value);
|
|
43919
43907
|
}
|
|
@@ -43928,7 +43916,7 @@ var Slider = React17.forwardRef(({
|
|
|
43928
43916
|
const calculateThumbPercent = (value2, min2, max2) => {
|
|
43929
43917
|
return (value2 - min2) / (max2 - min2) * 100;
|
|
43930
43918
|
};
|
|
43931
|
-
const trackRef =
|
|
43919
|
+
const trackRef = React16.useRef(null);
|
|
43932
43920
|
const min = props.min || 0;
|
|
43933
43921
|
const max = props.max || 100;
|
|
43934
43922
|
const step = props.step || 1;
|
|
@@ -44049,7 +44037,7 @@ var Slider = React17.forwardRef(({
|
|
|
44049
44037
|
] });
|
|
44050
44038
|
});
|
|
44051
44039
|
Slider.displayName = "Slider";
|
|
44052
|
-
var ToastViewport =
|
|
44040
|
+
var ToastViewport = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
44053
44041
|
ToastPrimitives.Viewport,
|
|
44054
44042
|
{
|
|
44055
44043
|
ref,
|
|
@@ -44078,7 +44066,7 @@ var toastVariants = cva(
|
|
|
44078
44066
|
}
|
|
44079
44067
|
}
|
|
44080
44068
|
);
|
|
44081
|
-
var Toast =
|
|
44069
|
+
var Toast = React16.forwardRef(({ className, variant, ...props }, ref) => {
|
|
44082
44070
|
return /* @__PURE__ */ jsx(
|
|
44083
44071
|
ToastPrimitives.Root,
|
|
44084
44072
|
{
|
|
@@ -44089,7 +44077,7 @@ var Toast = React17.forwardRef(({ className, variant, ...props }, ref) => {
|
|
|
44089
44077
|
);
|
|
44090
44078
|
});
|
|
44091
44079
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
44092
|
-
var ToastAction =
|
|
44080
|
+
var ToastAction = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
44093
44081
|
ToastPrimitives.Action,
|
|
44094
44082
|
{
|
|
44095
44083
|
ref,
|
|
@@ -44101,7 +44089,7 @@ var ToastAction = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
44101
44089
|
}
|
|
44102
44090
|
));
|
|
44103
44091
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
44104
|
-
var ToastClose =
|
|
44092
|
+
var ToastClose = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
44105
44093
|
ToastPrimitives.Close,
|
|
44106
44094
|
{
|
|
44107
44095
|
ref,
|
|
@@ -44115,7 +44103,7 @@ var ToastClose = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
44115
44103
|
}
|
|
44116
44104
|
));
|
|
44117
44105
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
44118
|
-
var ToastTitle =
|
|
44106
|
+
var ToastTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
44119
44107
|
ToastPrimitives.Title,
|
|
44120
44108
|
{
|
|
44121
44109
|
ref,
|
|
@@ -44124,7 +44112,7 @@ var ToastTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
44124
44112
|
}
|
|
44125
44113
|
));
|
|
44126
44114
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
44127
|
-
var ToastDescription =
|
|
44115
|
+
var ToastDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
44128
44116
|
ToastPrimitives.Description,
|
|
44129
44117
|
{
|
|
44130
44118
|
ref,
|
|
@@ -44237,9 +44225,54 @@ styleInject(".slash-commands-menu {\n border-radius: var(--radius);\n border-w
|
|
|
44237
44225
|
styleInject('.ProseMirror table {\n border-collapse: collapse;\n margin: 0;\n overflow: hidden;\n table-layout: fixed;\n width: 100%;\n border: 1px solid #d1d5db;\n}\n.ProseMirror table td,\n.ProseMirror table th {\n border: 1px solid #d1d5db;\n box-sizing: border-box;\n min-width: 1em;\n padding: 6px 8px;\n position: relative;\n vertical-align: top;\n}\n.ProseMirror table th {\n background-color: #f9fafb;\n font-weight: 600;\n text-align: left;\n}\n.ProseMirror table .selectedCell:after {\n background-color: rgba(59, 130, 246, 0.1);\n content: "";\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n position: absolute;\n z-index: 2;\n}\n.ProseMirror table .column-resize-handle {\n background-color: #3b82f6;\n bottom: -2px;\n position: absolute;\n right: -2px;\n top: 0;\n width: 4px;\n pointer-events: none;\n}\n.dark .ProseMirror table {\n border: 1px solid #374151;\n}\n.dark .ProseMirror table td,\n.dark .ProseMirror table th {\n border: 1px solid #374151;\n}\n.dark .ProseMirror table th {\n background-color: #111827;\n}\n.dark .ProseMirror table .selectedCell:after {\n background-color: rgba(59, 130, 246, 0.2);\n}\n');
|
|
44238
44226
|
var lowlight = createLowlight(grammars);
|
|
44239
44227
|
var getAIProvider = (settings) => {
|
|
44228
|
+
const generateWithPrompt = async (systemPrompt, userText) => {
|
|
44229
|
+
const result = `[${systemPrompt}] ${userText}`;
|
|
44230
|
+
return { text: result, error: void 0 };
|
|
44231
|
+
};
|
|
44240
44232
|
return {
|
|
44241
44233
|
generateText: async (prompt) => {
|
|
44242
|
-
|
|
44234
|
+
const result = await generateWithPrompt("Generate text", prompt);
|
|
44235
|
+
return result.text;
|
|
44236
|
+
},
|
|
44237
|
+
rewrite: async (text) => {
|
|
44238
|
+
const result = await generateWithPrompt("Rewrite this text", text);
|
|
44239
|
+
return result;
|
|
44240
|
+
},
|
|
44241
|
+
expand: async (text) => {
|
|
44242
|
+
const result = await generateWithPrompt("Expand this text", text);
|
|
44243
|
+
return result;
|
|
44244
|
+
},
|
|
44245
|
+
summarize: async (text) => {
|
|
44246
|
+
const result = await generateWithPrompt("Summarize this text", text);
|
|
44247
|
+
return result;
|
|
44248
|
+
},
|
|
44249
|
+
fixGrammar: async (text) => {
|
|
44250
|
+
const result = await generateWithPrompt("Fix grammar and spelling", text);
|
|
44251
|
+
return result;
|
|
44252
|
+
},
|
|
44253
|
+
translate: async (text, targetLang) => {
|
|
44254
|
+
const result = await generateWithPrompt(`Translate to ${targetLang}`, text);
|
|
44255
|
+
return result;
|
|
44256
|
+
},
|
|
44257
|
+
changeTone: async (text, tone) => {
|
|
44258
|
+
const result = await generateWithPrompt(`Change tone to ${tone}`, text);
|
|
44259
|
+
return result;
|
|
44260
|
+
},
|
|
44261
|
+
continueWriting: async (text) => {
|
|
44262
|
+
const result = await generateWithPrompt("Continue writing", text);
|
|
44263
|
+
return result;
|
|
44264
|
+
},
|
|
44265
|
+
improveWriting: async (text) => {
|
|
44266
|
+
const result = await generateWithPrompt("Improve writing quality", text);
|
|
44267
|
+
return result;
|
|
44268
|
+
},
|
|
44269
|
+
generateIdeas: async (text) => {
|
|
44270
|
+
const result = await generateWithPrompt("Generate writing ideas", text);
|
|
44271
|
+
return result;
|
|
44272
|
+
},
|
|
44273
|
+
complete: async (text) => {
|
|
44274
|
+
const result = await generateWithPrompt("Complete this text", text);
|
|
44275
|
+
return result;
|
|
44243
44276
|
}
|
|
44244
44277
|
};
|
|
44245
44278
|
};
|
|
@@ -44351,9 +44384,8 @@ function RichTextEditor({
|
|
|
44351
44384
|
maxTokens: 1e3
|
|
44352
44385
|
}
|
|
44353
44386
|
}) {
|
|
44354
|
-
const docsProAccess = { hasAccess: true };
|
|
44355
44387
|
const { hasProAccess, isLoading } = useSubscription();
|
|
44356
|
-
if (!
|
|
44388
|
+
if (!isLoading && !hasProAccess) {
|
|
44357
44389
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-full", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-12 text-center", children: /* @__PURE__ */ jsxs("div", { className: "max-w-md mx-auto space-y-4", children: [
|
|
44358
44390
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
44359
44391
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -44616,10 +44648,10 @@ function RichTextEditor({
|
|
|
44616
44648
|
response = await provider.improveWriting(text);
|
|
44617
44649
|
break;
|
|
44618
44650
|
case "ideas":
|
|
44619
|
-
response = await provider.generateIdeas(text
|
|
44651
|
+
response = await provider.generateIdeas(text);
|
|
44620
44652
|
break;
|
|
44621
44653
|
default:
|
|
44622
|
-
response = await provider.complete(
|
|
44654
|
+
response = await provider.complete(text);
|
|
44623
44655
|
}
|
|
44624
44656
|
if (response.error) {
|
|
44625
44657
|
toast({
|
|
@@ -44949,6 +44981,17 @@ function RichTextEditor({
|
|
|
44949
44981
|
ToolbarButton,
|
|
44950
44982
|
{
|
|
44951
44983
|
active: editor.isActive("link"),
|
|
44984
|
+
onClick: () => {
|
|
44985
|
+
const previousUrl = editor.getAttributes("link").href;
|
|
44986
|
+
const url = window.prompt("URL", previousUrl);
|
|
44987
|
+
if (url === null)
|
|
44988
|
+
return;
|
|
44989
|
+
if (url === "") {
|
|
44990
|
+
editor.chain().focus().extendMarkRange("link").unsetLink().run();
|
|
44991
|
+
} else {
|
|
44992
|
+
editor.chain().focus().extendMarkRange("link").setLink({ href: url }).run();
|
|
44993
|
+
}
|
|
44994
|
+
},
|
|
44952
44995
|
tooltip: "Add link",
|
|
44953
44996
|
disabled: isSourceView,
|
|
44954
44997
|
children: /* @__PURE__ */ jsx(Link2, { className: "w-4 h-4" })
|
|
@@ -45000,6 +45043,12 @@ function RichTextEditor({
|
|
|
45000
45043
|
/* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
45001
45044
|
ToolbarButton,
|
|
45002
45045
|
{
|
|
45046
|
+
onClick: () => {
|
|
45047
|
+
const url = window.prompt("Image URL");
|
|
45048
|
+
if (url) {
|
|
45049
|
+
editor.chain().focus().setImage({ src: url }).run();
|
|
45050
|
+
}
|
|
45051
|
+
},
|
|
45003
45052
|
tooltip: "Add image",
|
|
45004
45053
|
disabled: isSourceView,
|
|
45005
45054
|
children: /* @__PURE__ */ jsx(Image$1, { className: "w-4 h-4" })
|
|
@@ -45039,6 +45088,7 @@ function RichTextEditor({
|
|
|
45039
45088
|
/* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
45040
45089
|
ToolbarButton,
|
|
45041
45090
|
{
|
|
45091
|
+
onClick: () => editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run(),
|
|
45042
45092
|
tooltip: "Create table",
|
|
45043
45093
|
disabled: isSourceView,
|
|
45044
45094
|
children: /* @__PURE__ */ jsx(Table$1, { className: "w-4 h-4" })
|
|
@@ -45229,6 +45279,7 @@ function RichTextEditor({
|
|
|
45229
45279
|
/* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
45230
45280
|
ToolbarButton,
|
|
45231
45281
|
{
|
|
45282
|
+
onClick: () => setIsAiSettingsOpen(true),
|
|
45232
45283
|
tooltip: "AI Settings - Configure your API keys here",
|
|
45233
45284
|
disabled: isSourceView,
|
|
45234
45285
|
children: /* @__PURE__ */ jsx(Settings, { className: "w-4 h-4" })
|
|
@@ -45548,7 +45599,7 @@ var MemoryCache = class {
|
|
|
45548
45599
|
}
|
|
45549
45600
|
break;
|
|
45550
45601
|
case "fifo":
|
|
45551
|
-
keyToDelete = this.cache.keys().next().value;
|
|
45602
|
+
keyToDelete = this.cache.keys().next().value || null;
|
|
45552
45603
|
break;
|
|
45553
45604
|
}
|
|
45554
45605
|
if (keyToDelete) {
|
|
@@ -45593,7 +45644,7 @@ function MemoryEfficientData({
|
|
|
45593
45644
|
});
|
|
45594
45645
|
const containerRef = useRef(null);
|
|
45595
45646
|
const cacheRef = useRef(new MemoryCache(Math.floor(maxMemoryItems / chunkSize), cacheStrategy));
|
|
45596
|
-
const scrollTimeoutRef = useRef();
|
|
45647
|
+
const scrollTimeoutRef = useRef(void 0);
|
|
45597
45648
|
const visibleData = useMemo(() => {
|
|
45598
45649
|
const start = visibleRange.start;
|
|
45599
45650
|
const end = Math.min(visibleRange.end, data.length);
|
|
@@ -45669,7 +45720,7 @@ function MemoryEfficientData({
|
|
|
45669
45720
|
position: "absolute",
|
|
45670
45721
|
width: "100%"
|
|
45671
45722
|
},
|
|
45672
|
-
children: visibleData.map((item, index) => /* @__PURE__ */ jsx(
|
|
45723
|
+
children: visibleData.map((item, index) => /* @__PURE__ */ jsx(React16__default.Fragment, { children: renderItem(item, visibleRange.start + index) }, visibleRange.start + index))
|
|
45673
45724
|
}
|
|
45674
45725
|
) })
|
|
45675
45726
|
}
|
|
@@ -45739,8 +45790,8 @@ function VirtualList({
|
|
|
45739
45790
|
const [itemHeights, setItemHeights] = useState(/* @__PURE__ */ new Map());
|
|
45740
45791
|
const containerRef = useRef(null);
|
|
45741
45792
|
const scrollElementRef = useRef(null);
|
|
45742
|
-
const scrollTimeoutRef = useRef();
|
|
45743
|
-
const isScrollingTimeoutRef = useRef();
|
|
45793
|
+
const scrollTimeoutRef = useRef(void 0);
|
|
45794
|
+
const isScrollingTimeoutRef = useRef(void 0);
|
|
45744
45795
|
const itemPositions = useMemo(() => {
|
|
45745
45796
|
const positions = [];
|
|
45746
45797
|
let currentTop = 0;
|
|
@@ -45989,7 +46040,7 @@ function SelectableVirtualList({
|
|
|
45989
46040
|
}, [originalRenderItem, selectable, selectedItems, handleItemClick]);
|
|
45990
46041
|
return /* @__PURE__ */ jsx(VirtualList, { ...props, renderItem });
|
|
45991
46042
|
}
|
|
45992
|
-
var SwipeableCard =
|
|
46043
|
+
var SwipeableCard = React16__default.forwardRef(
|
|
45993
46044
|
({
|
|
45994
46045
|
children,
|
|
45995
46046
|
onSwipeLeft,
|
|
@@ -46298,9 +46349,9 @@ function AdvancedChart({
|
|
|
46298
46349
|
animated = true,
|
|
46299
46350
|
responsive = true
|
|
46300
46351
|
}) {
|
|
46301
|
-
const [isFullscreen, setIsFullscreen] =
|
|
46302
|
-
const chartRef =
|
|
46303
|
-
const trend =
|
|
46352
|
+
const [isFullscreen, setIsFullscreen] = React16__default.useState(false);
|
|
46353
|
+
const chartRef = React16__default.useRef(null);
|
|
46354
|
+
const trend = React16__default.useMemo(() => {
|
|
46304
46355
|
if (!data.length || !series.length)
|
|
46305
46356
|
return null;
|
|
46306
46357
|
const firstSeries = series[0];
|
|
@@ -46546,7 +46597,7 @@ function Dashboard({
|
|
|
46546
46597
|
onRefresh,
|
|
46547
46598
|
loading = false
|
|
46548
46599
|
}) {
|
|
46549
|
-
const [refreshing, setRefreshing] =
|
|
46600
|
+
const [refreshing, setRefreshing] = React16__default.useState(false);
|
|
46550
46601
|
const handleRefresh = async () => {
|
|
46551
46602
|
if (onRefresh) {
|
|
46552
46603
|
setRefreshing(true);
|
|
@@ -46836,7 +46887,7 @@ var checkboxVariants = cva(
|
|
|
46836
46887
|
}
|
|
46837
46888
|
}
|
|
46838
46889
|
);
|
|
46839
|
-
var Checkbox =
|
|
46890
|
+
var Checkbox = React16.forwardRef(({
|
|
46840
46891
|
className,
|
|
46841
46892
|
variant,
|
|
46842
46893
|
size,
|
|
@@ -46847,8 +46898,8 @@ var Checkbox = React17.forwardRef(({
|
|
|
46847
46898
|
checked,
|
|
46848
46899
|
...props
|
|
46849
46900
|
}, ref) => {
|
|
46850
|
-
const [isIndeterminate, setIsIndeterminate] =
|
|
46851
|
-
|
|
46901
|
+
const [isIndeterminate, setIsIndeterminate] = React16.useState(indeterminate);
|
|
46902
|
+
React16.useEffect(() => {
|
|
46852
46903
|
setIsIndeterminate(indeterminate);
|
|
46853
46904
|
}, [indeterminate]);
|
|
46854
46905
|
const effectiveChecked = isIndeterminate ? false : checked;
|
|
@@ -46873,7 +46924,7 @@ var Checkbox = React17.forwardRef(({
|
|
|
46873
46924
|
);
|
|
46874
46925
|
});
|
|
46875
46926
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
46876
|
-
var CheckboxGroup =
|
|
46927
|
+
var CheckboxGroup = React16.forwardRef(
|
|
46877
46928
|
({ className, orientation = "vertical", spacing = "1rem", children, ...props }, ref) => {
|
|
46878
46929
|
return /* @__PURE__ */ jsx(
|
|
46879
46930
|
"div",
|
|
@@ -46893,7 +46944,7 @@ var CheckboxGroup = React17.forwardRef(
|
|
|
46893
46944
|
}
|
|
46894
46945
|
);
|
|
46895
46946
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
46896
|
-
var CheckboxLabel =
|
|
46947
|
+
var CheckboxLabel = React16.forwardRef(
|
|
46897
46948
|
({ className, htmlFor, children, position = "end", disabled = false, ...props }, ref) => {
|
|
46898
46949
|
return /* @__PURE__ */ jsx(
|
|
46899
46950
|
"label",
|
|
@@ -46913,14 +46964,14 @@ var CheckboxLabel = React17.forwardRef(
|
|
|
46913
46964
|
}
|
|
46914
46965
|
);
|
|
46915
46966
|
CheckboxLabel.displayName = "CheckboxLabel";
|
|
46916
|
-
var CheckboxWithLabel =
|
|
46967
|
+
var CheckboxWithLabel = React16.forwardRef(({
|
|
46917
46968
|
id,
|
|
46918
46969
|
label,
|
|
46919
46970
|
labelPosition = "end",
|
|
46920
46971
|
labelClassName,
|
|
46921
46972
|
...checkboxProps
|
|
46922
46973
|
}, ref) => {
|
|
46923
|
-
const generatedId =
|
|
46974
|
+
const generatedId = React16.useId();
|
|
46924
46975
|
const checkboxId = id || generatedId;
|
|
46925
46976
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
46926
46977
|
labelPosition === "start" && /* @__PURE__ */ jsx(
|
|
@@ -46947,7 +46998,7 @@ var CheckboxWithLabel = React17.forwardRef(({
|
|
|
46947
46998
|
] });
|
|
46948
46999
|
});
|
|
46949
47000
|
CheckboxWithLabel.displayName = "CheckboxWithLabel";
|
|
46950
|
-
var Switch =
|
|
47001
|
+
var Switch = React16.forwardRef(({ className, size = "md", variant = "primary", loading, leftIcon, rightIcon, description, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "inline-flex items-center gap-2", children: [
|
|
46951
47002
|
leftIcon && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: leftIcon }),
|
|
46952
47003
|
/* @__PURE__ */ jsxs(
|
|
46953
47004
|
SwitchPrimitives.Root,
|
|
@@ -47299,9 +47350,8 @@ var AdvancedFormsInternal = ({
|
|
|
47299
47350
|
] });
|
|
47300
47351
|
};
|
|
47301
47352
|
var AdvancedForms = ({ className, ...props }) => {
|
|
47302
|
-
const docsProAccess = { hasAccess: true };
|
|
47303
47353
|
const { hasProAccess, isLoading } = useSubscription();
|
|
47304
|
-
if (!
|
|
47354
|
+
if (!isLoading && !hasProAccess) {
|
|
47305
47355
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
47306
47356
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
47307
47357
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -47660,9 +47710,8 @@ var ColorPickerInternal = ({
|
|
|
47660
47710
|
] });
|
|
47661
47711
|
};
|
|
47662
47712
|
var ColorPicker2 = ({ className, ...props }) => {
|
|
47663
|
-
const docsProAccess = { hasAccess: true };
|
|
47664
47713
|
const { hasProAccess, isLoading } = useSubscription();
|
|
47665
|
-
if (!
|
|
47714
|
+
if (!isLoading && !hasProAccess) {
|
|
47666
47715
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
47667
47716
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
47668
47717
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -47677,6 +47726,18 @@ var ColorPicker2 = ({ className, ...props }) => {
|
|
|
47677
47726
|
}
|
|
47678
47727
|
return /* @__PURE__ */ jsx(ColorPickerInternal, { className, ...props });
|
|
47679
47728
|
};
|
|
47729
|
+
function Skeleton({
|
|
47730
|
+
className,
|
|
47731
|
+
...props
|
|
47732
|
+
}) {
|
|
47733
|
+
return /* @__PURE__ */ jsx(
|
|
47734
|
+
"div",
|
|
47735
|
+
{
|
|
47736
|
+
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
47737
|
+
...props
|
|
47738
|
+
}
|
|
47739
|
+
);
|
|
47740
|
+
}
|
|
47680
47741
|
var GitHubStarsInternal = ({
|
|
47681
47742
|
username,
|
|
47682
47743
|
repositories,
|
|
@@ -47915,9 +47976,8 @@ var GitHubStarsInternal = ({
|
|
|
47915
47976
|
] }) }) });
|
|
47916
47977
|
};
|
|
47917
47978
|
var GitHubStars = ({ className, ...props }) => {
|
|
47918
|
-
const docsProAccess = { hasAccess: true };
|
|
47919
47979
|
const { hasProAccess, isLoading } = useSubscription();
|
|
47920
|
-
if (!
|
|
47980
|
+
if (!isLoading && !hasProAccess) {
|
|
47921
47981
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
47922
47982
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
47923
47983
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -48087,7 +48147,7 @@ var HealthCheckInternal = ({
|
|
|
48087
48147
|
/* @__PURE__ */ jsx(
|
|
48088
48148
|
Badge,
|
|
48089
48149
|
{
|
|
48090
|
-
variant: overallStatus === "healthy" ? "
|
|
48150
|
+
variant: overallStatus === "healthy" ? "secondary" : "destructive",
|
|
48091
48151
|
className: cn(
|
|
48092
48152
|
"text-white",
|
|
48093
48153
|
overallStatus === "healthy" && "bg-green-500",
|
|
@@ -48209,9 +48269,8 @@ var HealthCheckInternal = ({
|
|
|
48209
48269
|
] });
|
|
48210
48270
|
};
|
|
48211
48271
|
var HealthCheck = ({ className, ...props }) => {
|
|
48212
|
-
const docsProAccess = { hasAccess: true };
|
|
48213
48272
|
const { hasProAccess, isLoading } = useSubscription();
|
|
48214
|
-
if (!
|
|
48273
|
+
if (!isLoading && !hasProAccess) {
|
|
48215
48274
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
48216
48275
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
48217
48276
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -48377,8 +48436,7 @@ var LazyImage = ({
|
|
|
48377
48436
|
initial: { opacity: 0 },
|
|
48378
48437
|
animate: { opacity: 1 },
|
|
48379
48438
|
transition: { duration: 0.3 },
|
|
48380
|
-
className: "w-full h-full object-cover"
|
|
48381
|
-
...props
|
|
48439
|
+
className: "w-full h-full object-cover"
|
|
48382
48440
|
}
|
|
48383
48441
|
) : showPlaceholder ? /* @__PURE__ */ jsx(Skeleton, { className: "w-full h-full min-h-32" }) : null,
|
|
48384
48442
|
imageError && !fallbackSrc && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-muted", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Failed to load image" }) })
|
|
@@ -48432,9 +48490,8 @@ function LazyList({
|
|
|
48432
48490
|
] });
|
|
48433
48491
|
}
|
|
48434
48492
|
var LazyComponent = ({ className, ...props }) => {
|
|
48435
|
-
const docsProAccess = { hasAccess: true };
|
|
48436
48493
|
const { hasProAccess, isLoading } = useSubscription();
|
|
48437
|
-
if (!
|
|
48494
|
+
if (!isLoading && !hasProAccess) {
|
|
48438
48495
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
48439
48496
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
48440
48497
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -48744,9 +48801,8 @@ var OptimizedImageInternal = ({
|
|
|
48744
48801
|
] });
|
|
48745
48802
|
};
|
|
48746
48803
|
var OptimizedImage = ({ className, ...props }) => {
|
|
48747
|
-
const docsProAccess = { hasAccess: true };
|
|
48748
48804
|
const { hasProAccess, isLoading } = useSubscription();
|
|
48749
|
-
if (!
|
|
48805
|
+
if (!isLoading && !hasProAccess) {
|
|
48750
48806
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
48751
48807
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
48752
48808
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -48761,7 +48817,204 @@ var OptimizedImage = ({ className, ...props }) => {
|
|
|
48761
48817
|
}
|
|
48762
48818
|
return /* @__PURE__ */ jsx(OptimizedImageInternal, { className, ...props });
|
|
48763
48819
|
};
|
|
48764
|
-
|
|
48820
|
+
function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
48821
|
+
let defaultContexts = [];
|
|
48822
|
+
function createContext32(rootComponentName, defaultContext) {
|
|
48823
|
+
const BaseContext = React16.createContext(defaultContext);
|
|
48824
|
+
const index = defaultContexts.length;
|
|
48825
|
+
defaultContexts = [...defaultContexts, defaultContext];
|
|
48826
|
+
const Provider3 = (props) => {
|
|
48827
|
+
const { scope, children, ...context } = props;
|
|
48828
|
+
const Context = scope?.[scopeName]?.[index] || BaseContext;
|
|
48829
|
+
const value = React16.useMemo(() => context, Object.values(context));
|
|
48830
|
+
return /* @__PURE__ */ jsx(Context.Provider, { value, children });
|
|
48831
|
+
};
|
|
48832
|
+
Provider3.displayName = rootComponentName + "Provider";
|
|
48833
|
+
function useContext22(consumerName, scope) {
|
|
48834
|
+
const Context = scope?.[scopeName]?.[index] || BaseContext;
|
|
48835
|
+
const context = React16.useContext(Context);
|
|
48836
|
+
if (context)
|
|
48837
|
+
return context;
|
|
48838
|
+
if (defaultContext !== void 0)
|
|
48839
|
+
return defaultContext;
|
|
48840
|
+
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
48841
|
+
}
|
|
48842
|
+
return [Provider3, useContext22];
|
|
48843
|
+
}
|
|
48844
|
+
const createScope = () => {
|
|
48845
|
+
const scopeContexts = defaultContexts.map((defaultContext) => {
|
|
48846
|
+
return React16.createContext(defaultContext);
|
|
48847
|
+
});
|
|
48848
|
+
return function useScope(scope) {
|
|
48849
|
+
const contexts = scope?.[scopeName] || scopeContexts;
|
|
48850
|
+
return React16.useMemo(
|
|
48851
|
+
() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
|
|
48852
|
+
[scope, contexts]
|
|
48853
|
+
);
|
|
48854
|
+
};
|
|
48855
|
+
};
|
|
48856
|
+
createScope.scopeName = scopeName;
|
|
48857
|
+
return [createContext32, composeContextScopes(createScope, ...createContextScopeDeps)];
|
|
48858
|
+
}
|
|
48859
|
+
function composeContextScopes(...scopes) {
|
|
48860
|
+
const baseScope = scopes[0];
|
|
48861
|
+
if (scopes.length === 1)
|
|
48862
|
+
return baseScope;
|
|
48863
|
+
const createScope = () => {
|
|
48864
|
+
const scopeHooks = scopes.map((createScope2) => ({
|
|
48865
|
+
useScope: createScope2(),
|
|
48866
|
+
scopeName: createScope2.scopeName
|
|
48867
|
+
}));
|
|
48868
|
+
return function useComposedScopes(overrideScopes) {
|
|
48869
|
+
const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
|
|
48870
|
+
const scopeProps = useScope(overrideScopes);
|
|
48871
|
+
const currentScope = scopeProps[`__scope${scopeName}`];
|
|
48872
|
+
return { ...nextScopes2, ...currentScope };
|
|
48873
|
+
}, {});
|
|
48874
|
+
return React16.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
|
|
48875
|
+
};
|
|
48876
|
+
};
|
|
48877
|
+
createScope.scopeName = baseScope.scopeName;
|
|
48878
|
+
return createScope;
|
|
48879
|
+
}
|
|
48880
|
+
var NODES = [
|
|
48881
|
+
"a",
|
|
48882
|
+
"button",
|
|
48883
|
+
"div",
|
|
48884
|
+
"form",
|
|
48885
|
+
"h2",
|
|
48886
|
+
"h3",
|
|
48887
|
+
"img",
|
|
48888
|
+
"input",
|
|
48889
|
+
"label",
|
|
48890
|
+
"li",
|
|
48891
|
+
"nav",
|
|
48892
|
+
"ol",
|
|
48893
|
+
"p",
|
|
48894
|
+
"select",
|
|
48895
|
+
"span",
|
|
48896
|
+
"svg",
|
|
48897
|
+
"ul"
|
|
48898
|
+
];
|
|
48899
|
+
var Primitive = NODES.reduce((primitive, node) => {
|
|
48900
|
+
const Slot = createSlot(`Primitive.${node}`);
|
|
48901
|
+
const Node2 = React16.forwardRef((props, forwardedRef) => {
|
|
48902
|
+
const { asChild, ...primitiveProps } = props;
|
|
48903
|
+
const Comp = asChild ? Slot : node;
|
|
48904
|
+
if (typeof window !== "undefined") {
|
|
48905
|
+
window[Symbol.for("radix-ui")] = true;
|
|
48906
|
+
}
|
|
48907
|
+
return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
48908
|
+
});
|
|
48909
|
+
Node2.displayName = `Primitive.${node}`;
|
|
48910
|
+
return { ...primitive, [node]: Node2 };
|
|
48911
|
+
}, {});
|
|
48912
|
+
var PROGRESS_NAME = "Progress";
|
|
48913
|
+
var DEFAULT_MAX = 100;
|
|
48914
|
+
var [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);
|
|
48915
|
+
var [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME);
|
|
48916
|
+
var Progress = React16.forwardRef(
|
|
48917
|
+
(props, forwardedRef) => {
|
|
48918
|
+
const {
|
|
48919
|
+
__scopeProgress,
|
|
48920
|
+
value: valueProp = null,
|
|
48921
|
+
max: maxProp,
|
|
48922
|
+
getValueLabel = defaultGetValueLabel,
|
|
48923
|
+
...progressProps
|
|
48924
|
+
} = props;
|
|
48925
|
+
if ((maxProp || maxProp === 0) && !isValidMaxNumber(maxProp)) {
|
|
48926
|
+
console.error(getInvalidMaxError(`${maxProp}`, "Progress"));
|
|
48927
|
+
}
|
|
48928
|
+
const max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX;
|
|
48929
|
+
if (valueProp !== null && !isValidValueNumber(valueProp, max)) {
|
|
48930
|
+
console.error(getInvalidValueError(`${valueProp}`, "Progress"));
|
|
48931
|
+
}
|
|
48932
|
+
const value = isValidValueNumber(valueProp, max) ? valueProp : null;
|
|
48933
|
+
const valueLabel = isNumber2(value) ? getValueLabel(value, max) : void 0;
|
|
48934
|
+
return /* @__PURE__ */ jsx(ProgressProvider, { scope: __scopeProgress, value, max, children: /* @__PURE__ */ jsx(
|
|
48935
|
+
Primitive.div,
|
|
48936
|
+
{
|
|
48937
|
+
"aria-valuemax": max,
|
|
48938
|
+
"aria-valuemin": 0,
|
|
48939
|
+
"aria-valuenow": isNumber2(value) ? value : void 0,
|
|
48940
|
+
"aria-valuetext": valueLabel,
|
|
48941
|
+
role: "progressbar",
|
|
48942
|
+
"data-state": getProgressState(value, max),
|
|
48943
|
+
"data-value": value ?? void 0,
|
|
48944
|
+
"data-max": max,
|
|
48945
|
+
...progressProps,
|
|
48946
|
+
ref: forwardedRef
|
|
48947
|
+
}
|
|
48948
|
+
) });
|
|
48949
|
+
}
|
|
48950
|
+
);
|
|
48951
|
+
Progress.displayName = PROGRESS_NAME;
|
|
48952
|
+
var INDICATOR_NAME = "ProgressIndicator";
|
|
48953
|
+
var ProgressIndicator = React16.forwardRef(
|
|
48954
|
+
(props, forwardedRef) => {
|
|
48955
|
+
const { __scopeProgress, ...indicatorProps } = props;
|
|
48956
|
+
const context = useProgressContext(INDICATOR_NAME, __scopeProgress);
|
|
48957
|
+
return /* @__PURE__ */ jsx(
|
|
48958
|
+
Primitive.div,
|
|
48959
|
+
{
|
|
48960
|
+
"data-state": getProgressState(context.value, context.max),
|
|
48961
|
+
"data-value": context.value ?? void 0,
|
|
48962
|
+
"data-max": context.max,
|
|
48963
|
+
...indicatorProps,
|
|
48964
|
+
ref: forwardedRef
|
|
48965
|
+
}
|
|
48966
|
+
);
|
|
48967
|
+
}
|
|
48968
|
+
);
|
|
48969
|
+
ProgressIndicator.displayName = INDICATOR_NAME;
|
|
48970
|
+
function defaultGetValueLabel(value, max) {
|
|
48971
|
+
return `${Math.round(value / max * 100)}%`;
|
|
48972
|
+
}
|
|
48973
|
+
function getProgressState(value, maxValue) {
|
|
48974
|
+
return value == null ? "indeterminate" : value === maxValue ? "complete" : "loading";
|
|
48975
|
+
}
|
|
48976
|
+
function isNumber2(value) {
|
|
48977
|
+
return typeof value === "number";
|
|
48978
|
+
}
|
|
48979
|
+
function isValidMaxNumber(max) {
|
|
48980
|
+
return isNumber2(max) && !isNaN(max) && max > 0;
|
|
48981
|
+
}
|
|
48982
|
+
function isValidValueNumber(value, max) {
|
|
48983
|
+
return isNumber2(value) && !isNaN(value) && value <= max && value >= 0;
|
|
48984
|
+
}
|
|
48985
|
+
function getInvalidMaxError(propValue, componentName) {
|
|
48986
|
+
return `Invalid prop \`max\` of value \`${propValue}\` supplied to \`${componentName}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${DEFAULT_MAX}\`.`;
|
|
48987
|
+
}
|
|
48988
|
+
function getInvalidValueError(propValue, componentName) {
|
|
48989
|
+
return `Invalid prop \`value\` of value \`${propValue}\` supplied to \`${componentName}\`. The \`value\` prop must be:
|
|
48990
|
+
- a positive number
|
|
48991
|
+
- less than the value passed to \`max\` (or ${DEFAULT_MAX} if no \`max\` prop is set)
|
|
48992
|
+
- \`null\` or \`undefined\` if the progress is indeterminate.
|
|
48993
|
+
|
|
48994
|
+
Defaulting to \`null\`.`;
|
|
48995
|
+
}
|
|
48996
|
+
var Root11 = Progress;
|
|
48997
|
+
var Indicator2 = ProgressIndicator;
|
|
48998
|
+
var Progress2 = React16.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
48999
|
+
Root11,
|
|
49000
|
+
{
|
|
49001
|
+
ref,
|
|
49002
|
+
className: cn(
|
|
49003
|
+
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
49004
|
+
className
|
|
49005
|
+
),
|
|
49006
|
+
...props,
|
|
49007
|
+
children: /* @__PURE__ */ jsx(
|
|
49008
|
+
Indicator2,
|
|
49009
|
+
{
|
|
49010
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
49011
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
49012
|
+
}
|
|
49013
|
+
)
|
|
49014
|
+
}
|
|
49015
|
+
));
|
|
49016
|
+
Progress2.displayName = Root11.displayName;
|
|
49017
|
+
var Tabs = React16.forwardRef(({ vertical = false, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
48765
49018
|
TabsPrimitive.Root,
|
|
48766
49019
|
{
|
|
48767
49020
|
ref,
|
|
@@ -48796,7 +49049,7 @@ var tabsListVariants = cva(
|
|
|
48796
49049
|
}
|
|
48797
49050
|
}
|
|
48798
49051
|
);
|
|
48799
|
-
var TabsList =
|
|
49052
|
+
var TabsList = React16.forwardRef(({ className, variant, orientation, fullWidth, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
48800
49053
|
TabsPrimitive.List,
|
|
48801
49054
|
{
|
|
48802
49055
|
ref,
|
|
@@ -48837,7 +49090,7 @@ var tabsTriggerVariants = cva(
|
|
|
48837
49090
|
}
|
|
48838
49091
|
}
|
|
48839
49092
|
);
|
|
48840
|
-
var TabsTrigger =
|
|
49093
|
+
var TabsTrigger = React16.forwardRef(({
|
|
48841
49094
|
className,
|
|
48842
49095
|
variant,
|
|
48843
49096
|
size,
|
|
@@ -48868,7 +49121,7 @@ var TabsTrigger = React17.forwardRef(({
|
|
|
48868
49121
|
}
|
|
48869
49122
|
));
|
|
48870
49123
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
48871
|
-
var TabsContent =
|
|
49124
|
+
var TabsContent = React16.forwardRef(({ className, animated = false, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
48872
49125
|
TabsPrimitive.Content,
|
|
48873
49126
|
{
|
|
48874
49127
|
ref,
|
|
@@ -48896,7 +49149,7 @@ var PerformanceDebuggerInternal = ({
|
|
|
48896
49149
|
const [currentMetrics, setCurrentMetrics] = useState([]);
|
|
48897
49150
|
const [isCapturing, setIsCapturing] = useState(autoCapture);
|
|
48898
49151
|
const [isVisible, setIsVisible] = useState(true);
|
|
48899
|
-
const intervalRef = useRef();
|
|
49152
|
+
const intervalRef = useRef(void 0);
|
|
48900
49153
|
const webVitalsThresholds = {
|
|
48901
49154
|
FCP: { good: 1800, needs_improvement: 3e3 },
|
|
48902
49155
|
LCP: { good: 2500, needs_improvement: 4e3 },
|
|
@@ -48931,7 +49184,7 @@ var PerformanceDebuggerInternal = ({
|
|
|
48931
49184
|
},
|
|
48932
49185
|
{
|
|
48933
49186
|
name: "DOM Processing",
|
|
48934
|
-
value: nav2.domComplete - nav2.
|
|
49187
|
+
value: nav2.domComplete - (nav2.domInteractive || nav2.fetchStart),
|
|
48935
49188
|
unit: "ms",
|
|
48936
49189
|
description: "Time to process DOM"
|
|
48937
49190
|
},
|
|
@@ -49146,7 +49399,7 @@ var PerformanceDebuggerInternal = ({
|
|
|
49146
49399
|
/* @__PURE__ */ jsx(CardDescription, { children: "Real-time performance monitoring and web vitals tracking" })
|
|
49147
49400
|
] }),
|
|
49148
49401
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
49149
|
-
/* @__PURE__ */ jsxs(Badge, { variant: isCapturing ? "
|
|
49402
|
+
/* @__PURE__ */ jsxs(Badge, { variant: isCapturing ? "secondary" : "secondary", className: "gap-1", children: [
|
|
49150
49403
|
isCapturing ? /* @__PURE__ */ jsx(Activity, { className: "h-3 w-3 animate-pulse" }) : /* @__PURE__ */ jsx(Clock, { className: "h-3 w-3" }),
|
|
49151
49404
|
isCapturing ? "Live" : "Paused"
|
|
49152
49405
|
] }),
|
|
@@ -49213,7 +49466,7 @@ var PerformanceDebuggerInternal = ({
|
|
|
49213
49466
|
] }),
|
|
49214
49467
|
metric.threshold && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
49215
49468
|
/* @__PURE__ */ jsx(
|
|
49216
|
-
|
|
49469
|
+
Progress2,
|
|
49217
49470
|
{
|
|
49218
49471
|
value: Math.min(metric.value / (metric.threshold.needs_improvement * 2) * 100, 100),
|
|
49219
49472
|
className: "h-2"
|
|
@@ -49272,7 +49525,7 @@ var PerformanceDebuggerInternal = ({
|
|
|
49272
49525
|
/* @__PURE__ */ jsx("div", { className: "text-2xl font-bold mb-2 text-center", children: /* @__PURE__ */ jsx("span", { className: getStatusColor(status), children: formatValue(metric.value, metric.unit) }) }),
|
|
49273
49526
|
metric.threshold && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
49274
49527
|
/* @__PURE__ */ jsx(
|
|
49275
|
-
|
|
49528
|
+
Progress2,
|
|
49276
49529
|
{
|
|
49277
49530
|
value: Math.min(metric.value / (metric.threshold.needs_improvement * 2) * 100, 100),
|
|
49278
49531
|
className: "h-3"
|
|
@@ -49297,9 +49550,8 @@ var PerformanceDebuggerInternal = ({
|
|
|
49297
49550
|
] });
|
|
49298
49551
|
};
|
|
49299
49552
|
var PerformanceDebugger = ({ className, ...props }) => {
|
|
49300
|
-
const docsProAccess = { hasAccess: true };
|
|
49301
49553
|
const { hasProAccess, isLoading } = useSubscription();
|
|
49302
|
-
if (!
|
|
49554
|
+
if (!isLoading && !hasProAccess) {
|
|
49303
49555
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
49304
49556
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
49305
49557
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -49337,7 +49589,7 @@ var PerformanceMonitorInternal = ({
|
|
|
49337
49589
|
const [alerts, setAlerts] = useState([]);
|
|
49338
49590
|
const [isVisible, setIsVisible] = useState(true);
|
|
49339
49591
|
const [isRefreshing, setIsRefreshing] = useState(false);
|
|
49340
|
-
const intervalRef = useRef();
|
|
49592
|
+
const intervalRef = useRef(void 0);
|
|
49341
49593
|
const generateMockMetrics = useCallback(() => {
|
|
49342
49594
|
const baseMetrics = metrics || {
|
|
49343
49595
|
cpu: { usage: 25, cores: 8 },
|
|
@@ -49546,7 +49798,7 @@ var PerformanceMonitorInternal = ({
|
|
|
49546
49798
|
/* @__PURE__ */ jsx(CardDescription, { children: "Real-time system performance monitoring and alerts" })
|
|
49547
49799
|
] }),
|
|
49548
49800
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
49549
|
-
/* @__PURE__ */ jsxs(Badge, { variant: autoRefresh ? "
|
|
49801
|
+
/* @__PURE__ */ jsxs(Badge, { variant: autoRefresh ? "outline" : "secondary", className: "gap-1", children: [
|
|
49550
49802
|
autoRefresh ? /* @__PURE__ */ jsx(Activity, { className: "h-3 w-3 animate-pulse" }) : /* @__PURE__ */ jsx(Timer, { className: "h-3 w-3" }),
|
|
49551
49803
|
autoRefresh ? "Live" : "Paused"
|
|
49552
49804
|
] }),
|
|
@@ -49604,7 +49856,13 @@ var PerformanceMonitorInternal = ({
|
|
|
49604
49856
|
"%"
|
|
49605
49857
|
] })
|
|
49606
49858
|
] }),
|
|
49607
|
-
/* @__PURE__ */ jsx(
|
|
49859
|
+
/* @__PURE__ */ jsx("div", { className: "h-2 mt-2 bg-secondary rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
49860
|
+
"div",
|
|
49861
|
+
{
|
|
49862
|
+
className: "h-full bg-primary transition-all duration-300 ease-out",
|
|
49863
|
+
style: { width: `${metrics.cpu.usage}%` }
|
|
49864
|
+
}
|
|
49865
|
+
) }),
|
|
49608
49866
|
/* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
49609
49867
|
metrics.cpu.cores,
|
|
49610
49868
|
" cores ",
|
|
@@ -49622,7 +49880,13 @@ var PerformanceMonitorInternal = ({
|
|
|
49622
49880
|
"%"
|
|
49623
49881
|
] })
|
|
49624
49882
|
] }),
|
|
49625
|
-
/* @__PURE__ */ jsx(
|
|
49883
|
+
/* @__PURE__ */ jsx("div", { className: "h-2 mt-2 bg-secondary rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
49884
|
+
"div",
|
|
49885
|
+
{
|
|
49886
|
+
className: "h-full bg-primary transition-all duration-300 ease-out",
|
|
49887
|
+
style: { width: `${metrics.memory.percentage}%` }
|
|
49888
|
+
}
|
|
49889
|
+
) }),
|
|
49626
49890
|
/* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
49627
49891
|
formatBytes(metrics.memory.used * 1024 * 1024 * 1024),
|
|
49628
49892
|
" / ",
|
|
@@ -49640,7 +49904,13 @@ var PerformanceMonitorInternal = ({
|
|
|
49640
49904
|
"%"
|
|
49641
49905
|
] })
|
|
49642
49906
|
] }),
|
|
49643
|
-
/* @__PURE__ */ jsx(
|
|
49907
|
+
/* @__PURE__ */ jsx("div", { className: "h-2 mt-2 bg-secondary rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
49908
|
+
"div",
|
|
49909
|
+
{
|
|
49910
|
+
className: "h-full bg-primary transition-all duration-300 ease-out",
|
|
49911
|
+
style: { width: `${metrics.disk.percentage}%` }
|
|
49912
|
+
}
|
|
49913
|
+
) }),
|
|
49644
49914
|
/* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
49645
49915
|
formatBytes(metrics.disk.used * 1024 * 1024 * 1024),
|
|
49646
49916
|
" / ",
|
|
@@ -49719,7 +49989,13 @@ var PerformanceMonitorInternal = ({
|
|
|
49719
49989
|
"%"
|
|
49720
49990
|
] })
|
|
49721
49991
|
] }),
|
|
49722
|
-
/* @__PURE__ */ jsx(
|
|
49992
|
+
/* @__PURE__ */ jsx("div", { className: "h-2 bg-secondary rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
49993
|
+
"div",
|
|
49994
|
+
{
|
|
49995
|
+
className: "h-full bg-primary transition-all duration-300 ease-out",
|
|
49996
|
+
style: { width: `${metrics.cpu.usage}%` }
|
|
49997
|
+
}
|
|
49998
|
+
) })
|
|
49723
49999
|
] }),
|
|
49724
50000
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
|
|
49725
50001
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -49750,7 +50026,13 @@ var PerformanceMonitorInternal = ({
|
|
|
49750
50026
|
"%"
|
|
49751
50027
|
] })
|
|
49752
50028
|
] }),
|
|
49753
|
-
/* @__PURE__ */ jsx(
|
|
50029
|
+
/* @__PURE__ */ jsx("div", { className: "h-2 bg-secondary rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
50030
|
+
"div",
|
|
50031
|
+
{
|
|
50032
|
+
className: "h-full bg-primary transition-all duration-300 ease-out",
|
|
50033
|
+
style: { width: `${metrics.memory.percentage}%` }
|
|
50034
|
+
}
|
|
50035
|
+
) })
|
|
49754
50036
|
] }),
|
|
49755
50037
|
/* @__PURE__ */ jsxs("div", { className: "space-y-2 text-sm", children: [
|
|
49756
50038
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
@@ -49864,9 +50146,8 @@ var PerformanceMonitorInternal = ({
|
|
|
49864
50146
|
] });
|
|
49865
50147
|
};
|
|
49866
50148
|
var PerformanceMonitor = ({ className, ...props }) => {
|
|
49867
|
-
const docsProAccess = { hasAccess: true };
|
|
49868
50149
|
const { hasProAccess, isLoading } = useSubscription();
|
|
49869
|
-
if (!
|
|
50150
|
+
if (!isLoading && !hasProAccess) {
|
|
49870
50151
|
return /* @__PURE__ */ jsx(Card, { className: cn("w-fit", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6 text-center", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
49871
50152
|
/* @__PURE__ */ jsx("div", { className: "rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto", children: /* @__PURE__ */ jsx(Lock, { className: "h-6 w-6 text-purple-600 dark:text-purple-400" }) }),
|
|
49872
50153
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -49885,21 +50166,23 @@ var PerformanceMonitor = ({ className, ...props }) => {
|
|
|
49885
50166
|
// src/components/enhanced/index.ts
|
|
49886
50167
|
var enhanced_exports = {};
|
|
49887
50168
|
__export(enhanced_exports, {
|
|
49888
|
-
|
|
49889
|
-
|
|
49890
|
-
|
|
50169
|
+
BadgePro: () => BadgePro,
|
|
50170
|
+
ButtonPro: () => ButtonPro,
|
|
50171
|
+
CardPro: () => CardPro,
|
|
50172
|
+
CardProContent: () => CardProContent,
|
|
50173
|
+
CardProFooter: () => CardProFooter,
|
|
50174
|
+
CardProHeader: () => CardProHeader,
|
|
50175
|
+
DialogPro: () => Dialog2,
|
|
50176
|
+
DialogProClose: () => DialogClose,
|
|
50177
|
+
DialogProContent: () => DialogProContent,
|
|
50178
|
+
DialogProDescription: () => DialogProDescription,
|
|
50179
|
+
DialogProFooter: () => DialogProFooter,
|
|
50180
|
+
DialogProHeader: () => DialogProHeader,
|
|
50181
|
+
DialogProTitle: () => DialogProTitle,
|
|
50182
|
+
DialogProTrigger: () => DialogTrigger2,
|
|
49891
50183
|
EnhancedCardDescription: () => EnhancedCardDescription,
|
|
49892
|
-
EnhancedCardFooter: () => EnhancedCardFooter,
|
|
49893
|
-
EnhancedCardHeader: () => EnhancedCardHeader,
|
|
49894
50184
|
EnhancedCardTitle: () => EnhancedCardTitle,
|
|
49895
|
-
|
|
49896
|
-
EnhancedDialogClose: () => DialogClose,
|
|
49897
|
-
EnhancedDialogContent: () => EnhancedDialogContent,
|
|
49898
|
-
EnhancedDialogDescription: () => EnhancedDialogDescription,
|
|
49899
|
-
EnhancedDialogFooter: () => EnhancedDialogFooter,
|
|
49900
|
-
EnhancedDialogHeader: () => EnhancedDialogHeader,
|
|
49901
|
-
EnhancedDialogTitle: () => EnhancedDialogTitle,
|
|
49902
|
-
EnhancedDialogTrigger: () => DialogTrigger2,
|
|
50185
|
+
badgeVariants: () => badgeVariants2,
|
|
49903
50186
|
enhancedButtonVariants: () => enhancedButtonVariants
|
|
49904
50187
|
});
|
|
49905
50188
|
var enhancedButtonVariants = cva(
|
|
@@ -49937,7 +50220,7 @@ var enhancedButtonVariants = cva(
|
|
|
49937
50220
|
}
|
|
49938
50221
|
}
|
|
49939
50222
|
);
|
|
49940
|
-
var
|
|
50223
|
+
var ButtonPro = React16__default.forwardRef(
|
|
49941
50224
|
({
|
|
49942
50225
|
className,
|
|
49943
50226
|
variant,
|
|
@@ -49952,6 +50235,8 @@ var EnhancedButton = React17__default.forwardRef(
|
|
|
49952
50235
|
enableParticles = false,
|
|
49953
50236
|
enableMagnetic = false,
|
|
49954
50237
|
enableGlitch = false,
|
|
50238
|
+
disabled,
|
|
50239
|
+
type = "button",
|
|
49955
50240
|
...props
|
|
49956
50241
|
}, ref) => {
|
|
49957
50242
|
const [internalState, setInternalState] = useState("idle");
|
|
@@ -50071,7 +50356,8 @@ var EnhancedButton = React17__default.forwardRef(
|
|
|
50071
50356
|
onClick: handleClick2,
|
|
50072
50357
|
onMouseMove: handleMouseMove2,
|
|
50073
50358
|
onMouseLeave: handleMouseLeave2,
|
|
50074
|
-
disabled: currentState === "loading" ||
|
|
50359
|
+
disabled: currentState === "loading" || disabled,
|
|
50360
|
+
type,
|
|
50075
50361
|
animate: {
|
|
50076
50362
|
x: magneticPosition.x,
|
|
50077
50363
|
y: magneticPosition.y
|
|
@@ -50082,7 +50368,6 @@ var EnhancedButton = React17__default.forwardRef(
|
|
|
50082
50368
|
damping: 15,
|
|
50083
50369
|
mass: 0.1
|
|
50084
50370
|
},
|
|
50085
|
-
...props,
|
|
50086
50371
|
children: [
|
|
50087
50372
|
/* @__PURE__ */ jsx(AnimatePresence, { children: ripples.map((ripple) => /* @__PURE__ */ jsx(
|
|
50088
50373
|
motion.span,
|
|
@@ -50203,8 +50488,8 @@ var EnhancedButton = React17__default.forwardRef(
|
|
|
50203
50488
|
);
|
|
50204
50489
|
}
|
|
50205
50490
|
);
|
|
50206
|
-
|
|
50207
|
-
var
|
|
50491
|
+
ButtonPro.displayName = "ButtonPro";
|
|
50492
|
+
var CardPro = React16__default.forwardRef(
|
|
50208
50493
|
({
|
|
50209
50494
|
className,
|
|
50210
50495
|
children,
|
|
@@ -50276,11 +50561,10 @@ var EnhancedCard = React17__default.forwardRef(
|
|
|
50276
50561
|
perspective: "1000px"
|
|
50277
50562
|
},
|
|
50278
50563
|
animate: {
|
|
50279
|
-
rotateX: enableTilt ? rotateX : 0,
|
|
50280
|
-
rotateY: enableTilt ? rotateY : 0
|
|
50564
|
+
rotateX: enableTilt ? rotateX.get() : 0,
|
|
50565
|
+
rotateY: enableTilt ? rotateY.get() : 0
|
|
50281
50566
|
},
|
|
50282
50567
|
transition: { type: "spring", ...springConfig },
|
|
50283
|
-
...props,
|
|
50284
50568
|
children: [
|
|
50285
50569
|
enableGlow && /* @__PURE__ */ jsx(
|
|
50286
50570
|
motion.div,
|
|
@@ -50368,20 +50652,19 @@ var EnhancedCard = React17__default.forwardRef(
|
|
|
50368
50652
|
);
|
|
50369
50653
|
}
|
|
50370
50654
|
);
|
|
50371
|
-
|
|
50372
|
-
var
|
|
50655
|
+
CardPro.displayName = "CardPro";
|
|
50656
|
+
var CardProHeader = React16__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50373
50657
|
motion.div,
|
|
50374
50658
|
{
|
|
50375
50659
|
ref,
|
|
50376
50660
|
className: cn("flex flex-col space-y-1.5 p-6", className),
|
|
50377
50661
|
initial: { opacity: 0, y: -10 },
|
|
50378
50662
|
animate: { opacity: 1, y: 0 },
|
|
50379
|
-
transition: { duration: 0.3, delay: 0.1 }
|
|
50380
|
-
...props
|
|
50663
|
+
transition: { duration: 0.3, delay: 0.1 }
|
|
50381
50664
|
}
|
|
50382
50665
|
));
|
|
50383
|
-
|
|
50384
|
-
var EnhancedCardTitle =
|
|
50666
|
+
CardProHeader.displayName = "CardProHeader";
|
|
50667
|
+
var EnhancedCardTitle = React16__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50385
50668
|
motion.h3,
|
|
50386
50669
|
{
|
|
50387
50670
|
ref,
|
|
@@ -50391,52 +50674,48 @@ var EnhancedCardTitle = React17__default.forwardRef(({ className, ...props }, re
|
|
|
50391
50674
|
),
|
|
50392
50675
|
initial: { opacity: 0, x: -10 },
|
|
50393
50676
|
animate: { opacity: 1, x: 0 },
|
|
50394
|
-
transition: { duration: 0.3, delay: 0.2 }
|
|
50395
|
-
...props
|
|
50677
|
+
transition: { duration: 0.3, delay: 0.2 }
|
|
50396
50678
|
}
|
|
50397
50679
|
));
|
|
50398
50680
|
EnhancedCardTitle.displayName = "EnhancedCardTitle";
|
|
50399
|
-
var EnhancedCardDescription =
|
|
50681
|
+
var EnhancedCardDescription = React16__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50400
50682
|
motion.p,
|
|
50401
50683
|
{
|
|
50402
50684
|
ref,
|
|
50403
50685
|
className: cn("text-sm text-muted-foreground", className),
|
|
50404
50686
|
initial: { opacity: 0 },
|
|
50405
50687
|
animate: { opacity: 1 },
|
|
50406
|
-
transition: { duration: 0.3, delay: 0.3 }
|
|
50407
|
-
...props
|
|
50688
|
+
transition: { duration: 0.3, delay: 0.3 }
|
|
50408
50689
|
}
|
|
50409
50690
|
));
|
|
50410
50691
|
EnhancedCardDescription.displayName = "EnhancedCardDescription";
|
|
50411
|
-
var
|
|
50692
|
+
var CardProContent = React16__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50412
50693
|
motion.div,
|
|
50413
50694
|
{
|
|
50414
50695
|
ref,
|
|
50415
50696
|
className: cn("p-6 pt-0", className),
|
|
50416
50697
|
initial: { opacity: 0 },
|
|
50417
50698
|
animate: { opacity: 1 },
|
|
50418
|
-
transition: { duration: 0.3, delay: 0.4 }
|
|
50419
|
-
...props
|
|
50699
|
+
transition: { duration: 0.3, delay: 0.4 }
|
|
50420
50700
|
}
|
|
50421
50701
|
));
|
|
50422
|
-
|
|
50423
|
-
var
|
|
50702
|
+
CardProContent.displayName = "CardProContent";
|
|
50703
|
+
var CardProFooter = React16__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50424
50704
|
motion.div,
|
|
50425
50705
|
{
|
|
50426
50706
|
ref,
|
|
50427
50707
|
className: cn("flex items-center p-6 pt-0", className),
|
|
50428
50708
|
initial: { opacity: 0, y: 10 },
|
|
50429
50709
|
animate: { opacity: 1, y: 0 },
|
|
50430
|
-
transition: { duration: 0.3, delay: 0.5 }
|
|
50431
|
-
...props
|
|
50710
|
+
transition: { duration: 0.3, delay: 0.5 }
|
|
50432
50711
|
}
|
|
50433
50712
|
));
|
|
50434
|
-
|
|
50713
|
+
CardProFooter.displayName = "CardProFooter";
|
|
50435
50714
|
var Dialog2 = DialogPrimitive2.Root;
|
|
50436
50715
|
var DialogTrigger2 = DialogPrimitive2.Trigger;
|
|
50437
50716
|
var DialogPortal2 = DialogPrimitive2.Portal;
|
|
50438
50717
|
var DialogClose = DialogPrimitive2.Close;
|
|
50439
|
-
var
|
|
50718
|
+
var DialogProOverlay = React16.forwardRef(({ className, blur: blur2 = "md", variant = "default", ...props }, ref) => {
|
|
50440
50719
|
const blurClasses = {
|
|
50441
50720
|
none: "",
|
|
50442
50721
|
sm: "backdrop-blur-sm",
|
|
@@ -50464,8 +50743,8 @@ var EnhancedDialogOverlay = React17.forwardRef(({ className, blur: blur2 = "md",
|
|
|
50464
50743
|
}
|
|
50465
50744
|
);
|
|
50466
50745
|
});
|
|
50467
|
-
|
|
50468
|
-
var
|
|
50746
|
+
DialogProOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
50747
|
+
var DialogProContent = React16.forwardRef(({
|
|
50469
50748
|
className,
|
|
50470
50749
|
children,
|
|
50471
50750
|
animation = "scale",
|
|
@@ -50518,7 +50797,7 @@ var EnhancedDialogContent = React17.forwardRef(({
|
|
|
50518
50797
|
animate: { opacity: 1 },
|
|
50519
50798
|
exit: { opacity: 0 },
|
|
50520
50799
|
transition: { duration: animationDuration * 0.8 },
|
|
50521
|
-
children: /* @__PURE__ */ jsx(
|
|
50800
|
+
children: /* @__PURE__ */ jsx(DialogProOverlay, { ...overlayProps })
|
|
50522
50801
|
}
|
|
50523
50802
|
),
|
|
50524
50803
|
/* @__PURE__ */ jsx(
|
|
@@ -50572,8 +50851,8 @@ var EnhancedDialogContent = React17.forwardRef(({
|
|
|
50572
50851
|
)
|
|
50573
50852
|
] }) });
|
|
50574
50853
|
});
|
|
50575
|
-
|
|
50576
|
-
var
|
|
50854
|
+
DialogProContent.displayName = DialogPrimitive2.Content.displayName;
|
|
50855
|
+
var DialogProHeader = ({
|
|
50577
50856
|
className,
|
|
50578
50857
|
...props
|
|
50579
50858
|
}) => /* @__PURE__ */ jsx(
|
|
@@ -50585,12 +50864,11 @@ var EnhancedDialogHeader = ({
|
|
|
50585
50864
|
),
|
|
50586
50865
|
initial: { opacity: 0, y: -10 },
|
|
50587
50866
|
animate: { opacity: 1, y: 0 },
|
|
50588
|
-
transition: { delay: 0.1, duration: 0.3 }
|
|
50589
|
-
...props
|
|
50867
|
+
transition: { delay: 0.1, duration: 0.3 }
|
|
50590
50868
|
}
|
|
50591
50869
|
);
|
|
50592
|
-
|
|
50593
|
-
var
|
|
50870
|
+
DialogProHeader.displayName = "DialogProHeader";
|
|
50871
|
+
var DialogProFooter = ({
|
|
50594
50872
|
className,
|
|
50595
50873
|
...props
|
|
50596
50874
|
}) => /* @__PURE__ */ jsx(
|
|
@@ -50602,12 +50880,11 @@ var EnhancedDialogFooter = ({
|
|
|
50602
50880
|
),
|
|
50603
50881
|
initial: { opacity: 0, y: 10 },
|
|
50604
50882
|
animate: { opacity: 1, y: 0 },
|
|
50605
|
-
transition: { delay: 0.2, duration: 0.3 }
|
|
50606
|
-
...props
|
|
50883
|
+
transition: { delay: 0.2, duration: 0.3 }
|
|
50607
50884
|
}
|
|
50608
50885
|
);
|
|
50609
|
-
|
|
50610
|
-
var
|
|
50886
|
+
DialogProFooter.displayName = "DialogProFooter";
|
|
50887
|
+
var DialogProTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50611
50888
|
DialogPrimitive2.Title,
|
|
50612
50889
|
{
|
|
50613
50890
|
ref,
|
|
@@ -50618,8 +50895,8 @@ var EnhancedDialogTitle = React17.forwardRef(({ className, ...props }, ref) => /
|
|
|
50618
50895
|
...props
|
|
50619
50896
|
}
|
|
50620
50897
|
));
|
|
50621
|
-
|
|
50622
|
-
var
|
|
50898
|
+
DialogProTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
50899
|
+
var DialogProDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50623
50900
|
DialogPrimitive2.Description,
|
|
50624
50901
|
{
|
|
50625
50902
|
ref,
|
|
@@ -50627,6 +50904,161 @@ var EnhancedDialogDescription = React17.forwardRef(({ className, ...props }, ref
|
|
|
50627
50904
|
...props
|
|
50628
50905
|
}
|
|
50629
50906
|
));
|
|
50630
|
-
|
|
50907
|
+
DialogProDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
50908
|
+
var badgeVariants2 = cva(
|
|
50909
|
+
[
|
|
50910
|
+
"inline-flex items-center gap-1.5",
|
|
50911
|
+
"font-medium transition-all duration-200",
|
|
50912
|
+
"border focus:outline-none",
|
|
50913
|
+
"focus-visible:ring-2 focus-visible:ring-offset-1"
|
|
50914
|
+
],
|
|
50915
|
+
{
|
|
50916
|
+
variants: {
|
|
50917
|
+
variant: {
|
|
50918
|
+
default: [
|
|
50919
|
+
"border-transparent bg-primary text-primary-foreground",
|
|
50920
|
+
"hover:bg-primary/90",
|
|
50921
|
+
"focus-visible:ring-primary/30"
|
|
50922
|
+
],
|
|
50923
|
+
secondary: [
|
|
50924
|
+
"border-transparent bg-secondary text-secondary-foreground",
|
|
50925
|
+
"hover:bg-secondary/80",
|
|
50926
|
+
"focus-visible:ring-gray-400/30"
|
|
50927
|
+
],
|
|
50928
|
+
destructive: [
|
|
50929
|
+
"border-transparent bg-destructive text-destructive-foreground",
|
|
50930
|
+
"hover:bg-destructive/90",
|
|
50931
|
+
"focus-visible:ring-destructive/30"
|
|
50932
|
+
],
|
|
50933
|
+
outline: [
|
|
50934
|
+
"border-input bg-transparent",
|
|
50935
|
+
"hover:border-input/80",
|
|
50936
|
+
"focus-visible:ring-gray-400/30"
|
|
50937
|
+
],
|
|
50938
|
+
success: [
|
|
50939
|
+
"border-transparent bg-green-500 text-white",
|
|
50940
|
+
"hover:bg-green-600",
|
|
50941
|
+
"focus-visible:ring-green-500/30"
|
|
50942
|
+
],
|
|
50943
|
+
warning: [
|
|
50944
|
+
"border-transparent bg-yellow-500 text-white",
|
|
50945
|
+
"hover:bg-yellow-600",
|
|
50946
|
+
"focus-visible:ring-yellow-500/30"
|
|
50947
|
+
],
|
|
50948
|
+
pro: [
|
|
50949
|
+
"border-transparent bg-gradient-to-r from-purple-600 to-pink-600 text-white",
|
|
50950
|
+
"hover:from-purple-700 hover:to-pink-700",
|
|
50951
|
+
"focus-visible:ring-purple-400/30"
|
|
50952
|
+
]
|
|
50953
|
+
},
|
|
50954
|
+
size: {
|
|
50955
|
+
sm: "h-5 px-2 text-xs",
|
|
50956
|
+
default: "h-6 px-3 text-sm",
|
|
50957
|
+
lg: "h-8 px-4 text-base"
|
|
50958
|
+
}
|
|
50959
|
+
},
|
|
50960
|
+
defaultVariants: {
|
|
50961
|
+
variant: "default",
|
|
50962
|
+
size: "default"
|
|
50963
|
+
}
|
|
50964
|
+
}
|
|
50965
|
+
);
|
|
50966
|
+
var BadgePro = React16__default.forwardRef(({
|
|
50967
|
+
className,
|
|
50968
|
+
variant,
|
|
50969
|
+
size,
|
|
50970
|
+
enablePulse = false,
|
|
50971
|
+
enableGlow = false,
|
|
50972
|
+
enableShimmer = false,
|
|
50973
|
+
removable = false,
|
|
50974
|
+
onRemove,
|
|
50975
|
+
leftIcon,
|
|
50976
|
+
rightIcon,
|
|
50977
|
+
children,
|
|
50978
|
+
...props
|
|
50979
|
+
}, ref) => {
|
|
50980
|
+
const [isRemoving, setIsRemoving] = React16__default.useState(false);
|
|
50981
|
+
const handleRemove = () => {
|
|
50982
|
+
setIsRemoving(true);
|
|
50983
|
+
setTimeout(() => {
|
|
50984
|
+
onRemove?.();
|
|
50985
|
+
}, 300);
|
|
50986
|
+
};
|
|
50987
|
+
let autoLeftIcon = leftIcon;
|
|
50988
|
+
let autoChildren = children;
|
|
50989
|
+
if (variant === "pro" && !leftIcon) {
|
|
50990
|
+
autoLeftIcon = /* @__PURE__ */ jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "w-3 h-3", children: [
|
|
50991
|
+
/* @__PURE__ */ jsx("path", { d: "M12 0L13.09 8.26L22 9L13.09 9.74L12 18L10.91 9.74L2 9L10.91 8.26L12 0Z", fill: "currentColor" }),
|
|
50992
|
+
/* @__PURE__ */ jsx("path", { d: "M19 5L19.5 7L21 7.5L19.5 8L19 10L18.5 8L17 7.5L18.5 7L19 5Z", fill: "currentColor" }),
|
|
50993
|
+
/* @__PURE__ */ jsx("path", { d: "M19 15L19.5 17L21 17.5L19.5 18L19 20L18.5 18L17 17.5L18.5 17L19 15Z", fill: "currentColor" })
|
|
50994
|
+
] });
|
|
50995
|
+
autoChildren = children || "Pro";
|
|
50996
|
+
}
|
|
50997
|
+
return /* @__PURE__ */ jsx(AnimatePresence, { children: !isRemoving && /* @__PURE__ */ jsxs(
|
|
50998
|
+
motion.div,
|
|
50999
|
+
{
|
|
51000
|
+
ref,
|
|
51001
|
+
className: cn(
|
|
51002
|
+
badgeVariants2({ variant, size }),
|
|
51003
|
+
enablePulse && "animate-pulse",
|
|
51004
|
+
enableGlow && "shadow-lg shadow-current/50",
|
|
51005
|
+
enableShimmer && "relative overflow-hidden",
|
|
51006
|
+
className
|
|
51007
|
+
),
|
|
51008
|
+
initial: { opacity: 0, scale: 0.8 },
|
|
51009
|
+
animate: { opacity: 1, scale: 1 },
|
|
51010
|
+
exit: { opacity: 0, scale: 0.8 },
|
|
51011
|
+
transition: { duration: 0.2 },
|
|
51012
|
+
whileHover: { scale: 1.05 },
|
|
51013
|
+
whileTap: { scale: 0.95 },
|
|
51014
|
+
children: [
|
|
51015
|
+
enableShimmer && /* @__PURE__ */ jsx(
|
|
51016
|
+
motion.div,
|
|
51017
|
+
{
|
|
51018
|
+
className: "absolute inset-0 -translate-x-full bg-gradient-to-r from-transparent via-white/20 to-transparent",
|
|
51019
|
+
animate: { translateX: "200%" },
|
|
51020
|
+
transition: { duration: 2, repeat: Infinity, ease: "linear" }
|
|
51021
|
+
}
|
|
51022
|
+
),
|
|
51023
|
+
autoLeftIcon && /* @__PURE__ */ jsx(
|
|
51024
|
+
motion.span,
|
|
51025
|
+
{
|
|
51026
|
+
className: "inline-flex shrink-0",
|
|
51027
|
+
animate: enablePulse ? { scale: [1, 1.2, 1] } : {},
|
|
51028
|
+
transition: { duration: 2, repeat: Infinity },
|
|
51029
|
+
children: autoLeftIcon
|
|
51030
|
+
}
|
|
51031
|
+
),
|
|
51032
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: autoChildren }),
|
|
51033
|
+
rightIcon && /* @__PURE__ */ jsx("span", { className: "inline-flex shrink-0", children: rightIcon }),
|
|
51034
|
+
removable && onRemove && /* @__PURE__ */ jsx(
|
|
51035
|
+
motion.button,
|
|
51036
|
+
{
|
|
51037
|
+
type: "button",
|
|
51038
|
+
className: "ml-1 -mr-1 h-3.5 w-3.5 rounded-full inline-flex items-center justify-center hover:bg-black/10 dark:hover:bg-white/10",
|
|
51039
|
+
onClick: handleRemove,
|
|
51040
|
+
whileHover: { rotate: 90 },
|
|
51041
|
+
transition: { type: "spring", stiffness: 300 },
|
|
51042
|
+
"aria-label": "Remove badge",
|
|
51043
|
+
children: /* @__PURE__ */ jsx(
|
|
51044
|
+
"svg",
|
|
51045
|
+
{
|
|
51046
|
+
width: "8",
|
|
51047
|
+
height: "8",
|
|
51048
|
+
viewBox: "0 0 8 8",
|
|
51049
|
+
fill: "none",
|
|
51050
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
51051
|
+
className: "opacity-70",
|
|
51052
|
+
"aria-hidden": "true",
|
|
51053
|
+
children: /* @__PURE__ */ jsx("path", { d: "M0.799988 7.19999L7.19999 0.799988M0.799988 0.799988L7.19999 7.19999", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
51054
|
+
}
|
|
51055
|
+
)
|
|
51056
|
+
}
|
|
51057
|
+
)
|
|
51058
|
+
]
|
|
51059
|
+
}
|
|
51060
|
+
) });
|
|
51061
|
+
});
|
|
51062
|
+
BadgePro.displayName = "BadgePro";
|
|
50631
51063
|
|
|
50632
|
-
export { AdvancedChart, AdvancedForms, AnimatedButton, Calendar2 as Calendar,
|
|
51064
|
+
export { AdvancedChart, AdvancedForms, AnimatedButton, Calendar2 as Calendar, ColorPicker2 as ColorPicker, Dashboard, DraggableList, enhanced_exports as Enhanced, ErrorBoundary, FloatingActionButton, GitHubStars, HealthCheck, HoverCard3D, Kanban, LazyComponent, LazyImage, LazyList, MagneticButton, MemoryAnalytics, MemoryEfficientData, OptimizedImage, PerformanceDebugger, PerformanceMonitor, PinchZoom, RichTextEditor, SelectableVirtualList, SpotlightCard, SwipeableCard, Timeline, VirtualList, animatedButtonVariants, useStreamingData, useVirtualList };
|