@moontra/moonui-pro 2.0.12 → 2.0.13
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.mjs +1328 -433
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import * as React55 from 'react';
|
|
2
|
+
import React55__default, { useState, useRef, useCallback, forwardRef, createContext, Children, isValidElement, createElement, cloneElement, useEffect, useContext, useMemo, Fragment as Fragment$1, useLayoutEffect, useDebugValue, Component } from 'react';
|
|
3
|
+
import { motion, AnimatePresence, useMotionValue, useSpring, useTransform, animate } from 'framer-motion';
|
|
4
|
+
import { Loader2, Lock, Sparkles, Plus, ChevronDown, ChevronUp, Check, X, ChevronRight, Circle, 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, Table as Table$1, Settings, Undo, Redo, Eye, RefreshCw, Wand2, Maximize, FileText, Languages, TrendingUp, TrendingDown, Minus, Download, Maximize2, Activity, Star, ExternalLink, BarChart3, Users, DollarSign, AlertTriangle, CheckCircle2, AlertCircle, XCircle, ArrowDownRight, ArrowUpRight } from 'lucide-react';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
|
+
import { cva } from 'class-variance-authority';
|
|
7
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
-
import { Loader2, ChevronDown, ChevronUp, Check, X, ChevronRight, Circle, Lock, Sparkles, Calendar, ChevronLeft, Edit, Trash2, Clock, MapPin, User, Plus, 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, Table as Table$1, Settings, Undo, Redo, Eye, RefreshCw, Wand2, Maximize, FileText, Languages, TrendingUp, TrendingDown, Minus, Download, Maximize2, Activity, Star, ExternalLink, BarChart3, Users, DollarSign, CheckCircle2, AlertCircle, XCircle, ArrowDownRight, ArrowUpRight } from 'lucide-react';
|
|
9
9
|
import * as ReactDOM from 'react-dom';
|
|
10
10
|
import ReactDOM__default, { createPortal, flushSync } from 'react-dom';
|
|
11
11
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
@@ -1729,7 +1729,7 @@ function styleInject(css2, { insertAt } = {}) {
|
|
|
1729
1729
|
}
|
|
1730
1730
|
|
|
1731
1731
|
// src/styles/index.css
|
|
1732
|
-
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-\\[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-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-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-\\[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-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\\.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-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-96 {\n max-height: 24rem;\n}\n.max-h-\\[95vh\\] {\n max-height: 95vh;\n}\n.max-h-screen {\n max-height: 100vh;\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\\/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-20 {\n width: 5rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\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-\\[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-\\[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-\\[-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-default {\n cursor: default;\n}\n.cursor-grab {\n cursor: grab;\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-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-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, 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-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.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.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-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 {\n --tw-border-opacity: 1;\n border-color: hsl(var(--muted) / var(--tw-border-opacity, 1));\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\\/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.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-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\\/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-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-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-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-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-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-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.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.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.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-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-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.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\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-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-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-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\\/80 {\n color: rgb(255 255 255 / 0.8);\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-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.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-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.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-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.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.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\\: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-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-black\\/10:hover {\n background-color: rgb(0 0 0 / 0.1);\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-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-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\\: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\\=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-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\\/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\\: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}\n@media (min-width: 1024px) {\n .lg\\:flex {\n display: flex;\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');
|
|
1732
|
+
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-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-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-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-96 {\n max-height: 24rem;\n}\n.max-h-\\[95vh\\] {\n max-height: 95vh;\n}\n.max-h-screen {\n max-height: 100vh;\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-20 {\n width: 5rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\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-\\[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-\\[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-\\[-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-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-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-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, 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-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.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.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-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 {\n --tw-border-opacity: 1;\n border-color: hsl(var(--muted) / var(--tw-border-opacity, 1));\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\\/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.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\\/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\\/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-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-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-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-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-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-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.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-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.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\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-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-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-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\\/80 {\n color: rgb(255 255 255 / 0.8);\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-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.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-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-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.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.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\\: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-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-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\\: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\\=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-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\\/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\\: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}\n@media (min-width: 1024px) {\n .lg\\:flex {\n display: flex;\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');
|
|
1733
1733
|
function cn(...inputs) {
|
|
1734
1734
|
return twMerge(clsx(inputs));
|
|
1735
1735
|
}
|
|
@@ -1901,7 +1901,7 @@ var cardVariants = cva(
|
|
|
1901
1901
|
}
|
|
1902
1902
|
}
|
|
1903
1903
|
);
|
|
1904
|
-
var Card =
|
|
1904
|
+
var Card = React55.forwardRef(
|
|
1905
1905
|
({ className, variant, size: size4, radius, interactive, microInteraction = "lift", ...props }, ref) => {
|
|
1906
1906
|
if (interactive && microInteraction !== "none") {
|
|
1907
1907
|
const interactionProps = {
|
|
@@ -1929,7 +1929,7 @@ var Card = React50.forwardRef(
|
|
|
1929
1929
|
}
|
|
1930
1930
|
);
|
|
1931
1931
|
Card.displayName = "Card";
|
|
1932
|
-
var CardHeader =
|
|
1932
|
+
var CardHeader = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1933
1933
|
"div",
|
|
1934
1934
|
{
|
|
1935
1935
|
ref,
|
|
@@ -1938,7 +1938,7 @@ var CardHeader = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1938
1938
|
}
|
|
1939
1939
|
));
|
|
1940
1940
|
CardHeader.displayName = "CardHeader";
|
|
1941
|
-
var CardTitle =
|
|
1941
|
+
var CardTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1942
1942
|
"h3",
|
|
1943
1943
|
{
|
|
1944
1944
|
ref,
|
|
@@ -1947,7 +1947,7 @@ var CardTitle = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1947
1947
|
}
|
|
1948
1948
|
));
|
|
1949
1949
|
CardTitle.displayName = "CardTitle";
|
|
1950
|
-
var CardDescription =
|
|
1950
|
+
var CardDescription = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1951
1951
|
"p",
|
|
1952
1952
|
{
|
|
1953
1953
|
ref,
|
|
@@ -1956,9 +1956,9 @@ var CardDescription = React50.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1956
1956
|
}
|
|
1957
1957
|
));
|
|
1958
1958
|
CardDescription.displayName = "CardDescription";
|
|
1959
|
-
var CardContent =
|
|
1959
|
+
var CardContent = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("pt-0", className), ...props }));
|
|
1960
1960
|
CardContent.displayName = "CardContent";
|
|
1961
|
-
var CardFooter =
|
|
1961
|
+
var CardFooter = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1962
1962
|
"div",
|
|
1963
1963
|
{
|
|
1964
1964
|
ref,
|
|
@@ -2116,7 +2116,7 @@ var buttonVariants = cva(
|
|
|
2116
2116
|
}
|
|
2117
2117
|
}
|
|
2118
2118
|
);
|
|
2119
|
-
var Button =
|
|
2119
|
+
var Button = React55.forwardRef(
|
|
2120
2120
|
({
|
|
2121
2121
|
className,
|
|
2122
2122
|
variant,
|
|
@@ -2151,6 +2151,917 @@ var Button = React50.forwardRef(
|
|
|
2151
2151
|
}
|
|
2152
2152
|
);
|
|
2153
2153
|
Button.displayName = "Button";
|
|
2154
|
+
|
|
2155
|
+
// src/hooks/use-subscription.ts
|
|
2156
|
+
function useSubscription() {
|
|
2157
|
+
return {
|
|
2158
|
+
isLoading: false,
|
|
2159
|
+
isAuthenticated: true,
|
|
2160
|
+
isAdmin: false,
|
|
2161
|
+
hasProAccess: true,
|
|
2162
|
+
// Pro package kullanıcıları varsayılan olarak pro erişime sahip
|
|
2163
|
+
subscriptionPlan: "pro",
|
|
2164
|
+
subscription: {
|
|
2165
|
+
status: "active",
|
|
2166
|
+
plan: "pro"
|
|
2167
|
+
}
|
|
2168
|
+
};
|
|
2169
|
+
}
|
|
2170
|
+
var animatedButtonVariants = cva(
|
|
2171
|
+
"relative inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 overflow-hidden",
|
|
2172
|
+
{
|
|
2173
|
+
variants: {
|
|
2174
|
+
variant: {
|
|
2175
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
2176
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
2177
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
2178
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
2179
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
2180
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
2181
|
+
},
|
|
2182
|
+
size: {
|
|
2183
|
+
default: "h-9 px-4 py-2",
|
|
2184
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
2185
|
+
lg: "h-10 rounded-md px-8"
|
|
2186
|
+
}
|
|
2187
|
+
},
|
|
2188
|
+
defaultVariants: {
|
|
2189
|
+
variant: "default",
|
|
2190
|
+
size: "default"
|
|
2191
|
+
}
|
|
2192
|
+
}
|
|
2193
|
+
);
|
|
2194
|
+
var AnimatedButtonInternal = React55__default.forwardRef(
|
|
2195
|
+
({ className, variant, size: size4, state = "idle", onStateChange, children, onClick, ...props }, ref) => {
|
|
2196
|
+
const [internalState, setInternalState] = useState("idle");
|
|
2197
|
+
const currentState = state !== "idle" ? state : internalState;
|
|
2198
|
+
const handleClick2 = async (e) => {
|
|
2199
|
+
if (currentState === "loading")
|
|
2200
|
+
return;
|
|
2201
|
+
setInternalState("loading");
|
|
2202
|
+
onStateChange?.("loading");
|
|
2203
|
+
if (onClick) {
|
|
2204
|
+
try {
|
|
2205
|
+
await onClick(e);
|
|
2206
|
+
setInternalState("success");
|
|
2207
|
+
onStateChange?.("success");
|
|
2208
|
+
setTimeout(() => {
|
|
2209
|
+
setInternalState("idle");
|
|
2210
|
+
onStateChange?.("idle");
|
|
2211
|
+
}, 2e3);
|
|
2212
|
+
} catch (error) {
|
|
2213
|
+
setInternalState("error");
|
|
2214
|
+
onStateChange?.("error");
|
|
2215
|
+
setTimeout(() => {
|
|
2216
|
+
setInternalState("idle");
|
|
2217
|
+
onStateChange?.("idle");
|
|
2218
|
+
}, 2e3);
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
};
|
|
2222
|
+
const getIcon = () => {
|
|
2223
|
+
switch (currentState) {
|
|
2224
|
+
case "loading":
|
|
2225
|
+
return /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" });
|
|
2226
|
+
case "success":
|
|
2227
|
+
return /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" });
|
|
2228
|
+
case "error":
|
|
2229
|
+
return /* @__PURE__ */ jsx(X, { className: "h-4 w-4" });
|
|
2230
|
+
default:
|
|
2231
|
+
return null;
|
|
2232
|
+
}
|
|
2233
|
+
};
|
|
2234
|
+
const getBackgroundColor = () => {
|
|
2235
|
+
switch (currentState) {
|
|
2236
|
+
case "success":
|
|
2237
|
+
return "bg-green-600";
|
|
2238
|
+
case "error":
|
|
2239
|
+
return "bg-red-600";
|
|
2240
|
+
default:
|
|
2241
|
+
return "";
|
|
2242
|
+
}
|
|
2243
|
+
};
|
|
2244
|
+
return /* @__PURE__ */ jsxs(
|
|
2245
|
+
"button",
|
|
2246
|
+
{
|
|
2247
|
+
className: cn(animatedButtonVariants({ variant, size: size4 }), className),
|
|
2248
|
+
ref,
|
|
2249
|
+
onClick: handleClick2,
|
|
2250
|
+
disabled: currentState === "loading" || props.disabled,
|
|
2251
|
+
...props,
|
|
2252
|
+
children: [
|
|
2253
|
+
/* @__PURE__ */ jsxs(
|
|
2254
|
+
motion.div,
|
|
2255
|
+
{
|
|
2256
|
+
className: "flex items-center gap-2",
|
|
2257
|
+
animate: {
|
|
2258
|
+
width: currentState !== "idle" ? "auto" : "100%"
|
|
2259
|
+
},
|
|
2260
|
+
transition: { duration: 0.2 },
|
|
2261
|
+
children: [
|
|
2262
|
+
/* @__PURE__ */ jsx(
|
|
2263
|
+
motion.div,
|
|
2264
|
+
{
|
|
2265
|
+
animate: {
|
|
2266
|
+
scale: currentState !== "idle" ? 1 : 0,
|
|
2267
|
+
width: currentState !== "idle" ? "auto" : 0
|
|
2268
|
+
},
|
|
2269
|
+
transition: { duration: 0.2 },
|
|
2270
|
+
className: "flex items-center",
|
|
2271
|
+
children: getIcon()
|
|
2272
|
+
}
|
|
2273
|
+
),
|
|
2274
|
+
/* @__PURE__ */ jsx(
|
|
2275
|
+
motion.span,
|
|
2276
|
+
{
|
|
2277
|
+
animate: {
|
|
2278
|
+
opacity: currentState === "idle" ? 1 : 0,
|
|
2279
|
+
x: currentState !== "idle" ? -20 : 0
|
|
2280
|
+
},
|
|
2281
|
+
transition: { duration: 0.2 },
|
|
2282
|
+
children
|
|
2283
|
+
}
|
|
2284
|
+
)
|
|
2285
|
+
]
|
|
2286
|
+
}
|
|
2287
|
+
),
|
|
2288
|
+
/* @__PURE__ */ jsx(
|
|
2289
|
+
motion.div,
|
|
2290
|
+
{
|
|
2291
|
+
className: cn(
|
|
2292
|
+
"absolute inset-0 rounded-md",
|
|
2293
|
+
getBackgroundColor()
|
|
2294
|
+
),
|
|
2295
|
+
initial: { scale: 0, opacity: 0 },
|
|
2296
|
+
animate: {
|
|
2297
|
+
scale: currentState === "success" || currentState === "error" ? 1 : 0,
|
|
2298
|
+
opacity: currentState === "success" || currentState === "error" ? 1 : 0
|
|
2299
|
+
},
|
|
2300
|
+
transition: { duration: 0.3 },
|
|
2301
|
+
style: { zIndex: -1 }
|
|
2302
|
+
}
|
|
2303
|
+
)
|
|
2304
|
+
]
|
|
2305
|
+
}
|
|
2306
|
+
);
|
|
2307
|
+
}
|
|
2308
|
+
);
|
|
2309
|
+
AnimatedButtonInternal.displayName = "AnimatedButtonInternal";
|
|
2310
|
+
var AnimatedButton = React55__default.forwardRef(
|
|
2311
|
+
({ className, ...props }, ref) => {
|
|
2312
|
+
const docsProAccess = { hasAccess: true };
|
|
2313
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
2314
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
2315
|
+
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: [
|
|
2316
|
+
/* @__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" }) }),
|
|
2317
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2318
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
2319
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "Animated Button is available exclusively to MoonUI Pro subscribers." }),
|
|
2320
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
2321
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
2322
|
+
"Upgrade to Pro"
|
|
2323
|
+
] }) })
|
|
2324
|
+
] })
|
|
2325
|
+
] }) }) });
|
|
2326
|
+
}
|
|
2327
|
+
return /* @__PURE__ */ jsx(AnimatedButtonInternal, { className, ref, ...props });
|
|
2328
|
+
}
|
|
2329
|
+
);
|
|
2330
|
+
AnimatedButton.displayName = "AnimatedButton";
|
|
2331
|
+
var ErrorBoundaryInternal = class extends Component {
|
|
2332
|
+
constructor(props) {
|
|
2333
|
+
super(props);
|
|
2334
|
+
this.state = { hasError: false };
|
|
2335
|
+
}
|
|
2336
|
+
static getDerivedStateFromError(error) {
|
|
2337
|
+
return { hasError: true, error };
|
|
2338
|
+
}
|
|
2339
|
+
componentDidCatch(error, errorInfo) {
|
|
2340
|
+
this.props.onError?.(error, errorInfo);
|
|
2341
|
+
console.error("ErrorBoundary caught an error:", error, errorInfo);
|
|
2342
|
+
}
|
|
2343
|
+
render() {
|
|
2344
|
+
if (this.state.hasError) {
|
|
2345
|
+
if (this.props.fallback) {
|
|
2346
|
+
return this.props.fallback;
|
|
2347
|
+
}
|
|
2348
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center min-h-[200px] p-4", this.props.className), children: /* @__PURE__ */ jsxs(Card, { className: "w-full max-w-md", children: [
|
|
2349
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
|
|
2350
|
+
/* @__PURE__ */ jsx("div", { className: "mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-red-100", children: /* @__PURE__ */ jsx(AlertTriangle, { className: "h-6 w-6 text-red-600" }) }),
|
|
2351
|
+
/* @__PURE__ */ jsx(CardTitle, { children: "Something went wrong" }),
|
|
2352
|
+
/* @__PURE__ */ jsx(CardDescription, { children: "An error occurred while rendering this component" })
|
|
2353
|
+
] }),
|
|
2354
|
+
/* @__PURE__ */ jsx(CardContent, { className: "text-center", children: /* @__PURE__ */ jsxs(
|
|
2355
|
+
Button,
|
|
2356
|
+
{
|
|
2357
|
+
onClick: () => this.setState({ hasError: false, error: void 0 }),
|
|
2358
|
+
className: "mt-4",
|
|
2359
|
+
children: [
|
|
2360
|
+
/* @__PURE__ */ jsx(RefreshCw, { className: "mr-2 h-4 w-4" }),
|
|
2361
|
+
"Try again"
|
|
2362
|
+
]
|
|
2363
|
+
}
|
|
2364
|
+
) })
|
|
2365
|
+
] }) });
|
|
2366
|
+
}
|
|
2367
|
+
return this.props.children;
|
|
2368
|
+
}
|
|
2369
|
+
};
|
|
2370
|
+
function ErrorBoundaryWrapper(props) {
|
|
2371
|
+
const docsProAccess = { hasAccess: true };
|
|
2372
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
2373
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
2374
|
+
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: [
|
|
2375
|
+
/* @__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" }) }),
|
|
2376
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2377
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
2378
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "Error Boundary is available exclusively to MoonUI Pro subscribers." }),
|
|
2379
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
2380
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
2381
|
+
"Upgrade to Pro"
|
|
2382
|
+
] }) })
|
|
2383
|
+
] })
|
|
2384
|
+
] }) }) });
|
|
2385
|
+
}
|
|
2386
|
+
return /* @__PURE__ */ jsx(ErrorBoundaryInternal, { ...props });
|
|
2387
|
+
}
|
|
2388
|
+
var ErrorBoundary = ErrorBoundaryWrapper;
|
|
2389
|
+
var FloatingActionButtonInternal = React55__default.forwardRef(
|
|
2390
|
+
({
|
|
2391
|
+
actions = [],
|
|
2392
|
+
position = "bottom-right",
|
|
2393
|
+
size: size4 = "default",
|
|
2394
|
+
className,
|
|
2395
|
+
children,
|
|
2396
|
+
onClick,
|
|
2397
|
+
...props
|
|
2398
|
+
}, ref) => {
|
|
2399
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
2400
|
+
const sizeClasses = {
|
|
2401
|
+
sm: "h-10 w-10",
|
|
2402
|
+
default: "h-12 w-12",
|
|
2403
|
+
lg: "h-14 w-14"
|
|
2404
|
+
};
|
|
2405
|
+
const positionClasses = {
|
|
2406
|
+
"bottom-right": "bottom-4 right-4",
|
|
2407
|
+
"bottom-left": "bottom-4 left-4",
|
|
2408
|
+
"top-right": "top-4 right-4",
|
|
2409
|
+
"top-left": "top-4 left-4"
|
|
2410
|
+
};
|
|
2411
|
+
const actionPositions = {
|
|
2412
|
+
"bottom-right": { x: -60, y: 0 },
|
|
2413
|
+
"bottom-left": { x: 60, y: 0 },
|
|
2414
|
+
"top-right": { x: -60, y: 0 },
|
|
2415
|
+
"top-left": { x: 60, y: 0 }
|
|
2416
|
+
};
|
|
2417
|
+
const handleMainClick = (e) => {
|
|
2418
|
+
if (actions.length > 0) {
|
|
2419
|
+
setIsOpen(!isOpen);
|
|
2420
|
+
} else if (onClick) {
|
|
2421
|
+
onClick(e);
|
|
2422
|
+
}
|
|
2423
|
+
};
|
|
2424
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("fixed z-50", positionClasses[position]), children: [
|
|
2425
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "absolute", children: actions.map((action, index2) => /* @__PURE__ */ jsxs(
|
|
2426
|
+
motion.div,
|
|
2427
|
+
{
|
|
2428
|
+
initial: {
|
|
2429
|
+
scale: 0,
|
|
2430
|
+
opacity: 0,
|
|
2431
|
+
x: 0,
|
|
2432
|
+
y: 0
|
|
2433
|
+
},
|
|
2434
|
+
animate: {
|
|
2435
|
+
scale: 1,
|
|
2436
|
+
opacity: 1,
|
|
2437
|
+
x: actionPositions[position].x,
|
|
2438
|
+
y: actionPositions[position].y * (index2 + 1) - 10
|
|
2439
|
+
},
|
|
2440
|
+
exit: {
|
|
2441
|
+
scale: 0,
|
|
2442
|
+
opacity: 0,
|
|
2443
|
+
x: 0,
|
|
2444
|
+
y: 0
|
|
2445
|
+
},
|
|
2446
|
+
transition: {
|
|
2447
|
+
delay: index2 * 0.05,
|
|
2448
|
+
type: "spring",
|
|
2449
|
+
stiffness: 200,
|
|
2450
|
+
damping: 15
|
|
2451
|
+
},
|
|
2452
|
+
className: "absolute flex items-center gap-2",
|
|
2453
|
+
style: {
|
|
2454
|
+
transform: `translate(${position.includes("right") ? "0" : "0"}, ${position.includes("bottom") ? "0" : "0"})`
|
|
2455
|
+
},
|
|
2456
|
+
children: [
|
|
2457
|
+
/* @__PURE__ */ jsx(
|
|
2458
|
+
motion.div,
|
|
2459
|
+
{
|
|
2460
|
+
initial: { opacity: 0, scale: 0.8 },
|
|
2461
|
+
animate: { opacity: 1, scale: 1 },
|
|
2462
|
+
exit: { opacity: 0, scale: 0.8 },
|
|
2463
|
+
transition: { delay: (index2 + 1) * 0.05 },
|
|
2464
|
+
className: cn(
|
|
2465
|
+
"px-2 py-1 bg-background/90 backdrop-blur-sm text-sm font-medium rounded-md shadow-sm border whitespace-nowrap",
|
|
2466
|
+
position.includes("right") ? "mr-2" : "ml-2"
|
|
2467
|
+
),
|
|
2468
|
+
children: action.label
|
|
2469
|
+
}
|
|
2470
|
+
),
|
|
2471
|
+
/* @__PURE__ */ jsx(
|
|
2472
|
+
"button",
|
|
2473
|
+
{
|
|
2474
|
+
onClick: () => {
|
|
2475
|
+
action.onClick();
|
|
2476
|
+
setIsOpen(false);
|
|
2477
|
+
},
|
|
2478
|
+
className: cn(
|
|
2479
|
+
"inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
2480
|
+
sizeClasses[size4]
|
|
2481
|
+
),
|
|
2482
|
+
children: action.icon
|
|
2483
|
+
}
|
|
2484
|
+
)
|
|
2485
|
+
]
|
|
2486
|
+
},
|
|
2487
|
+
index2
|
|
2488
|
+
)) }) }),
|
|
2489
|
+
/* @__PURE__ */ jsx(
|
|
2490
|
+
motion.button,
|
|
2491
|
+
{
|
|
2492
|
+
ref,
|
|
2493
|
+
className: cn(
|
|
2494
|
+
"inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
2495
|
+
sizeClasses[size4],
|
|
2496
|
+
className
|
|
2497
|
+
),
|
|
2498
|
+
onClick: handleMainClick,
|
|
2499
|
+
whileHover: { scale: 1.1 },
|
|
2500
|
+
whileTap: { scale: 0.9 },
|
|
2501
|
+
animate: { rotate: isOpen ? 45 : 0 },
|
|
2502
|
+
transition: { duration: 0.2 },
|
|
2503
|
+
...props,
|
|
2504
|
+
children: children || (actions.length > 0 ? /* @__PURE__ */ jsx(Plus, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx(Plus, { className: "h-5 w-5" }))
|
|
2505
|
+
}
|
|
2506
|
+
),
|
|
2507
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsx(
|
|
2508
|
+
motion.div,
|
|
2509
|
+
{
|
|
2510
|
+
initial: { opacity: 0 },
|
|
2511
|
+
animate: { opacity: 1 },
|
|
2512
|
+
exit: { opacity: 0 },
|
|
2513
|
+
className: "fixed inset-0 z-[-1]",
|
|
2514
|
+
onClick: () => setIsOpen(false)
|
|
2515
|
+
}
|
|
2516
|
+
) })
|
|
2517
|
+
] });
|
|
2518
|
+
}
|
|
2519
|
+
);
|
|
2520
|
+
FloatingActionButtonInternal.displayName = "FloatingActionButtonInternal";
|
|
2521
|
+
var FloatingActionButton = React55__default.forwardRef(
|
|
2522
|
+
({ className, ...props }, ref) => {
|
|
2523
|
+
const docsProAccess = { hasAccess: true };
|
|
2524
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
2525
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
2526
|
+
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: [
|
|
2527
|
+
/* @__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" }) }),
|
|
2528
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2529
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
2530
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "Floating Action Button is available exclusively to MoonUI Pro subscribers." }),
|
|
2531
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
2532
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
2533
|
+
"Upgrade to Pro"
|
|
2534
|
+
] }) })
|
|
2535
|
+
] })
|
|
2536
|
+
] }) }) });
|
|
2537
|
+
}
|
|
2538
|
+
return /* @__PURE__ */ jsx(FloatingActionButtonInternal, { className, ref, ...props });
|
|
2539
|
+
}
|
|
2540
|
+
);
|
|
2541
|
+
FloatingActionButton.displayName = "FloatingActionButton";
|
|
2542
|
+
var HoverCard3DInternal = React55__default.forwardRef(
|
|
2543
|
+
({
|
|
2544
|
+
children,
|
|
2545
|
+
className,
|
|
2546
|
+
perspective = 1e3,
|
|
2547
|
+
rotationIntensity = 15,
|
|
2548
|
+
springConfig = { stiffness: 200, damping: 15 },
|
|
2549
|
+
...props
|
|
2550
|
+
}, ref) => {
|
|
2551
|
+
const cardRef = useRef(null);
|
|
2552
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
2553
|
+
const x = useMotionValue(0);
|
|
2554
|
+
const y = useMotionValue(0);
|
|
2555
|
+
const springX = useSpring(x, springConfig);
|
|
2556
|
+
const springY = useSpring(y, springConfig);
|
|
2557
|
+
const rotateX = useTransform(springY, [-0.5, 0.5], [rotationIntensity, -rotationIntensity]);
|
|
2558
|
+
const rotateY = useTransform(springX, [-0.5, 0.5], [-rotationIntensity, rotationIntensity]);
|
|
2559
|
+
const handleMouseMove2 = (e) => {
|
|
2560
|
+
if (!cardRef.current)
|
|
2561
|
+
return;
|
|
2562
|
+
const rect = cardRef.current.getBoundingClientRect();
|
|
2563
|
+
const centerX = rect.left + rect.width / 2;
|
|
2564
|
+
const centerY = rect.top + rect.height / 2;
|
|
2565
|
+
const rotateXValue = (e.clientY - centerY) / (rect.height / 2);
|
|
2566
|
+
const rotateYValue = (e.clientX - centerX) / (rect.width / 2);
|
|
2567
|
+
x.set(rotateYValue);
|
|
2568
|
+
y.set(rotateXValue);
|
|
2569
|
+
};
|
|
2570
|
+
const handleMouseEnter = () => {
|
|
2571
|
+
setIsHovered(true);
|
|
2572
|
+
};
|
|
2573
|
+
const handleMouseLeave2 = () => {
|
|
2574
|
+
setIsHovered(false);
|
|
2575
|
+
x.set(0);
|
|
2576
|
+
y.set(0);
|
|
2577
|
+
};
|
|
2578
|
+
return /* @__PURE__ */ jsxs(
|
|
2579
|
+
motion.div,
|
|
2580
|
+
{
|
|
2581
|
+
ref: (node) => {
|
|
2582
|
+
cardRef.current = node;
|
|
2583
|
+
if (typeof ref === "function") {
|
|
2584
|
+
ref(node);
|
|
2585
|
+
} else if (ref) {
|
|
2586
|
+
ref.current = node;
|
|
2587
|
+
}
|
|
2588
|
+
},
|
|
2589
|
+
className: cn(
|
|
2590
|
+
"relative rounded-lg border bg-card text-card-foreground shadow-sm transition-colors duration-200 hover:bg-card/90",
|
|
2591
|
+
className
|
|
2592
|
+
),
|
|
2593
|
+
onMouseMove: handleMouseMove2,
|
|
2594
|
+
onMouseEnter: handleMouseEnter,
|
|
2595
|
+
onMouseLeave: handleMouseLeave2,
|
|
2596
|
+
style: {
|
|
2597
|
+
transformPerspective: perspective,
|
|
2598
|
+
transformStyle: "preserve-3d"
|
|
2599
|
+
},
|
|
2600
|
+
animate: {
|
|
2601
|
+
rotateX: isHovered ? rotateX : 0,
|
|
2602
|
+
rotateY: isHovered ? rotateY : 0,
|
|
2603
|
+
scale: isHovered ? 1.05 : 1
|
|
2604
|
+
},
|
|
2605
|
+
transition: { duration: 0.15 },
|
|
2606
|
+
...props,
|
|
2607
|
+
children: [
|
|
2608
|
+
/* @__PURE__ */ jsx(
|
|
2609
|
+
motion.div,
|
|
2610
|
+
{
|
|
2611
|
+
className: "relative z-10",
|
|
2612
|
+
animate: {
|
|
2613
|
+
z: isHovered ? 20 : 0
|
|
2614
|
+
},
|
|
2615
|
+
transition: { duration: 0.2 },
|
|
2616
|
+
children
|
|
2617
|
+
}
|
|
2618
|
+
),
|
|
2619
|
+
/* @__PURE__ */ jsx(
|
|
2620
|
+
motion.div,
|
|
2621
|
+
{
|
|
2622
|
+
className: "absolute inset-0 rounded-lg bg-gradient-to-br from-white/5 via-transparent to-black/5 pointer-events-none",
|
|
2623
|
+
animate: {
|
|
2624
|
+
opacity: isHovered ? 1 : 0
|
|
2625
|
+
},
|
|
2626
|
+
transition: { duration: 0.3 }
|
|
2627
|
+
}
|
|
2628
|
+
),
|
|
2629
|
+
/* @__PURE__ */ jsx(
|
|
2630
|
+
motion.div,
|
|
2631
|
+
{
|
|
2632
|
+
className: "absolute inset-0 rounded-lg bg-primary/5 blur-xl",
|
|
2633
|
+
animate: {
|
|
2634
|
+
opacity: isHovered ? 0.8 : 0,
|
|
2635
|
+
scale: isHovered ? 1.2 : 1
|
|
2636
|
+
},
|
|
2637
|
+
transition: { duration: 0.3 },
|
|
2638
|
+
style: { zIndex: -1 }
|
|
2639
|
+
}
|
|
2640
|
+
)
|
|
2641
|
+
]
|
|
2642
|
+
}
|
|
2643
|
+
);
|
|
2644
|
+
}
|
|
2645
|
+
);
|
|
2646
|
+
HoverCard3DInternal.displayName = "HoverCard3DInternal";
|
|
2647
|
+
var HoverCard3D = React55__default.forwardRef(
|
|
2648
|
+
({ className, ...props }, ref) => {
|
|
2649
|
+
const docsProAccess = { hasAccess: true };
|
|
2650
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
2651
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
2652
|
+
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: [
|
|
2653
|
+
/* @__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" }) }),
|
|
2654
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2655
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
2656
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "3D Hover Card is available exclusively to MoonUI Pro subscribers." }),
|
|
2657
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
2658
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
2659
|
+
"Upgrade to Pro"
|
|
2660
|
+
] }) })
|
|
2661
|
+
] })
|
|
2662
|
+
] }) }) });
|
|
2663
|
+
}
|
|
2664
|
+
return /* @__PURE__ */ jsx(HoverCard3DInternal, { className, ref, ...props });
|
|
2665
|
+
}
|
|
2666
|
+
);
|
|
2667
|
+
HoverCard3D.displayName = "HoverCard3D";
|
|
2668
|
+
var MagneticButtonInternal = React55__default.forwardRef(
|
|
2669
|
+
({
|
|
2670
|
+
children,
|
|
2671
|
+
className,
|
|
2672
|
+
strength = 0.3,
|
|
2673
|
+
range = 100,
|
|
2674
|
+
springConfig = { stiffness: 200, damping: 15 },
|
|
2675
|
+
...props
|
|
2676
|
+
}, ref) => {
|
|
2677
|
+
const buttonRef = useRef(null);
|
|
2678
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
2679
|
+
const x = useMotionValue(0);
|
|
2680
|
+
const y = useMotionValue(0);
|
|
2681
|
+
const springX = useSpring(x, springConfig);
|
|
2682
|
+
const springY = useSpring(y, springConfig);
|
|
2683
|
+
const rotateX = useTransform(springY, [-range, range], [5, -5]);
|
|
2684
|
+
const rotateY = useTransform(springX, [-range, range], [-5, 5]);
|
|
2685
|
+
const handleMouseMove2 = (e) => {
|
|
2686
|
+
if (!buttonRef.current)
|
|
2687
|
+
return;
|
|
2688
|
+
const rect = buttonRef.current.getBoundingClientRect();
|
|
2689
|
+
const centerX = rect.left + rect.width / 2;
|
|
2690
|
+
const centerY = rect.top + rect.height / 2;
|
|
2691
|
+
const deltaX = e.clientX - centerX;
|
|
2692
|
+
const deltaY = e.clientY - centerY;
|
|
2693
|
+
const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
2694
|
+
if (distance < range) {
|
|
2695
|
+
x.set(deltaX * strength);
|
|
2696
|
+
y.set(deltaY * strength);
|
|
2697
|
+
}
|
|
2698
|
+
};
|
|
2699
|
+
const handleMouseLeave2 = () => {
|
|
2700
|
+
setIsHovered(false);
|
|
2701
|
+
x.set(0);
|
|
2702
|
+
y.set(0);
|
|
2703
|
+
};
|
|
2704
|
+
const handleMouseEnter = () => {
|
|
2705
|
+
setIsHovered(true);
|
|
2706
|
+
};
|
|
2707
|
+
return /* @__PURE__ */ jsxs(
|
|
2708
|
+
motion.button,
|
|
2709
|
+
{
|
|
2710
|
+
ref: (node) => {
|
|
2711
|
+
buttonRef.current = node;
|
|
2712
|
+
if (typeof ref === "function") {
|
|
2713
|
+
ref(node);
|
|
2714
|
+
} else if (ref) {
|
|
2715
|
+
ref.current = node;
|
|
2716
|
+
}
|
|
2717
|
+
},
|
|
2718
|
+
className: cn(
|
|
2719
|
+
"relative inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
|
2720
|
+
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
2721
|
+
"h-9 px-4 py-2",
|
|
2722
|
+
className
|
|
2723
|
+
),
|
|
2724
|
+
onMouseMove: handleMouseMove2,
|
|
2725
|
+
onMouseLeave: handleMouseLeave2,
|
|
2726
|
+
onMouseEnter: handleMouseEnter,
|
|
2727
|
+
style: {
|
|
2728
|
+
x: springX,
|
|
2729
|
+
y: springY,
|
|
2730
|
+
rotateX,
|
|
2731
|
+
rotateY,
|
|
2732
|
+
transformPerspective: 1e3
|
|
2733
|
+
},
|
|
2734
|
+
whileHover: { scale: 1.05 },
|
|
2735
|
+
whileTap: { scale: 0.95 },
|
|
2736
|
+
animate: {
|
|
2737
|
+
rotateX: isHovered ? rotateX : 0,
|
|
2738
|
+
rotateY: isHovered ? rotateY : 0
|
|
2739
|
+
},
|
|
2740
|
+
transition: { duration: 0.3 },
|
|
2741
|
+
...props,
|
|
2742
|
+
children: [
|
|
2743
|
+
/* @__PURE__ */ jsx(
|
|
2744
|
+
motion.div,
|
|
2745
|
+
{
|
|
2746
|
+
className: "relative z-10",
|
|
2747
|
+
animate: {
|
|
2748
|
+
scale: isHovered ? 1.02 : 1
|
|
2749
|
+
},
|
|
2750
|
+
transition: { duration: 0.2 },
|
|
2751
|
+
children
|
|
2752
|
+
}
|
|
2753
|
+
),
|
|
2754
|
+
/* @__PURE__ */ jsx(
|
|
2755
|
+
motion.div,
|
|
2756
|
+
{
|
|
2757
|
+
className: "absolute inset-0 rounded-md bg-primary/20 blur-md",
|
|
2758
|
+
animate: {
|
|
2759
|
+
opacity: isHovered ? 0.8 : 0,
|
|
2760
|
+
scale: isHovered ? 1.1 : 1
|
|
2761
|
+
},
|
|
2762
|
+
transition: { duration: 0.3 }
|
|
2763
|
+
}
|
|
2764
|
+
)
|
|
2765
|
+
]
|
|
2766
|
+
}
|
|
2767
|
+
);
|
|
2768
|
+
}
|
|
2769
|
+
);
|
|
2770
|
+
MagneticButtonInternal.displayName = "MagneticButtonInternal";
|
|
2771
|
+
var MagneticButton = React55__default.forwardRef(
|
|
2772
|
+
({ className, ...props }, ref) => {
|
|
2773
|
+
const docsProAccess = { hasAccess: true };
|
|
2774
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
2775
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
2776
|
+
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: [
|
|
2777
|
+
/* @__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" }) }),
|
|
2778
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2779
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
2780
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "Magnetic Button is available exclusively to MoonUI Pro subscribers." }),
|
|
2781
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
2782
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
2783
|
+
"Upgrade to Pro"
|
|
2784
|
+
] }) })
|
|
2785
|
+
] })
|
|
2786
|
+
] }) }) });
|
|
2787
|
+
}
|
|
2788
|
+
return /* @__PURE__ */ jsx(MagneticButtonInternal, { className, ref, ...props });
|
|
2789
|
+
}
|
|
2790
|
+
);
|
|
2791
|
+
MagneticButton.displayName = "MagneticButton";
|
|
2792
|
+
var PinchZoomInternal = React55__default.forwardRef(
|
|
2793
|
+
({
|
|
2794
|
+
children,
|
|
2795
|
+
minZoom = 0.5,
|
|
2796
|
+
maxZoom = 3,
|
|
2797
|
+
initialZoom = 1,
|
|
2798
|
+
className,
|
|
2799
|
+
contentClassName,
|
|
2800
|
+
onZoomChange,
|
|
2801
|
+
...props
|
|
2802
|
+
}, ref) => {
|
|
2803
|
+
const containerRef = useRef(null);
|
|
2804
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
2805
|
+
const scale = useMotionValue(initialZoom);
|
|
2806
|
+
const x = useMotionValue(0);
|
|
2807
|
+
const y = useMotionValue(0);
|
|
2808
|
+
const constrainedScale = useTransform(scale, (value) => {
|
|
2809
|
+
return Math.min(Math.max(value, minZoom), maxZoom);
|
|
2810
|
+
});
|
|
2811
|
+
const handleWheel = useCallback((event) => {
|
|
2812
|
+
event.preventDefault();
|
|
2813
|
+
const delta = -event.deltaY / 1e3;
|
|
2814
|
+
const currentScale = scale.get();
|
|
2815
|
+
const newScale = Math.min(Math.max(currentScale + delta, minZoom), maxZoom);
|
|
2816
|
+
animate(scale, newScale, { duration: 0.2 });
|
|
2817
|
+
onZoomChange?.(newScale);
|
|
2818
|
+
}, [scale, minZoom, maxZoom, onZoomChange]);
|
|
2819
|
+
const handleDoubleClick2 = useCallback((event) => {
|
|
2820
|
+
event.preventDefault();
|
|
2821
|
+
const currentScale = scale.get();
|
|
2822
|
+
const newScale = currentScale > 1 ? 1 : 2;
|
|
2823
|
+
animate(scale, Math.min(Math.max(newScale, minZoom), maxZoom), {
|
|
2824
|
+
duration: 0.3,
|
|
2825
|
+
type: "spring",
|
|
2826
|
+
stiffness: 300
|
|
2827
|
+
});
|
|
2828
|
+
if (newScale === 1) {
|
|
2829
|
+
animate(x, 0, { duration: 0.3 });
|
|
2830
|
+
animate(y, 0, { duration: 0.3 });
|
|
2831
|
+
}
|
|
2832
|
+
onZoomChange?.(newScale);
|
|
2833
|
+
}, [scale, x, y, minZoom, maxZoom, onZoomChange]);
|
|
2834
|
+
const resetZoom = useCallback(() => {
|
|
2835
|
+
animate(scale, initialZoom, { duration: 0.3 });
|
|
2836
|
+
animate(x, 0, { duration: 0.3 });
|
|
2837
|
+
animate(y, 0, { duration: 0.3 });
|
|
2838
|
+
onZoomChange?.(initialZoom);
|
|
2839
|
+
}, [scale, x, y, initialZoom, onZoomChange]);
|
|
2840
|
+
return /* @__PURE__ */ jsxs(
|
|
2841
|
+
"div",
|
|
2842
|
+
{
|
|
2843
|
+
ref,
|
|
2844
|
+
className: cn(
|
|
2845
|
+
"relative overflow-hidden touch-none select-none",
|
|
2846
|
+
"cursor-grab active:cursor-grabbing",
|
|
2847
|
+
className
|
|
2848
|
+
),
|
|
2849
|
+
onWheel: handleWheel,
|
|
2850
|
+
onDoubleClick: handleDoubleClick2,
|
|
2851
|
+
...props,
|
|
2852
|
+
children: [
|
|
2853
|
+
/* @__PURE__ */ jsx(
|
|
2854
|
+
motion.div,
|
|
2855
|
+
{
|
|
2856
|
+
ref: containerRef,
|
|
2857
|
+
drag: true,
|
|
2858
|
+
dragElastic: 0,
|
|
2859
|
+
dragMomentum: false,
|
|
2860
|
+
onDragStart: () => setIsDragging(true),
|
|
2861
|
+
onDragEnd: () => setIsDragging(false),
|
|
2862
|
+
style: {
|
|
2863
|
+
scale: constrainedScale,
|
|
2864
|
+
x,
|
|
2865
|
+
y
|
|
2866
|
+
},
|
|
2867
|
+
className: cn(
|
|
2868
|
+
"w-full h-full flex items-center justify-center",
|
|
2869
|
+
isDragging && "cursor-grabbing",
|
|
2870
|
+
contentClassName
|
|
2871
|
+
),
|
|
2872
|
+
children
|
|
2873
|
+
}
|
|
2874
|
+
),
|
|
2875
|
+
/* @__PURE__ */ jsx(
|
|
2876
|
+
"button",
|
|
2877
|
+
{
|
|
2878
|
+
onClick: resetZoom,
|
|
2879
|
+
className: cn(
|
|
2880
|
+
"absolute bottom-4 right-4 px-3 py-1 bg-background/80 backdrop-blur-sm",
|
|
2881
|
+
"border rounded-md text-sm hover:bg-background/90 transition-colors",
|
|
2882
|
+
"opacity-0 hover:opacity-100 focus:opacity-100"
|
|
2883
|
+
),
|
|
2884
|
+
children: "Reset"
|
|
2885
|
+
}
|
|
2886
|
+
)
|
|
2887
|
+
]
|
|
2888
|
+
}
|
|
2889
|
+
);
|
|
2890
|
+
}
|
|
2891
|
+
);
|
|
2892
|
+
PinchZoomInternal.displayName = "PinchZoomInternal";
|
|
2893
|
+
var PinchZoom = React55__default.forwardRef(
|
|
2894
|
+
({ className, ...props }, ref) => {
|
|
2895
|
+
const docsProAccess = { hasAccess: true };
|
|
2896
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
2897
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
2898
|
+
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: [
|
|
2899
|
+
/* @__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" }) }),
|
|
2900
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2901
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
2902
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "Pinch Zoom is available exclusively to MoonUI Pro subscribers." }),
|
|
2903
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
2904
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
2905
|
+
"Upgrade to Pro"
|
|
2906
|
+
] }) })
|
|
2907
|
+
] })
|
|
2908
|
+
] }) }) });
|
|
2909
|
+
}
|
|
2910
|
+
return /* @__PURE__ */ jsx(PinchZoomInternal, { className, ref, ...props });
|
|
2911
|
+
}
|
|
2912
|
+
);
|
|
2913
|
+
PinchZoom.displayName = "PinchZoom";
|
|
2914
|
+
var SpotlightCardInternal = React55__default.forwardRef(
|
|
2915
|
+
({
|
|
2916
|
+
children,
|
|
2917
|
+
className,
|
|
2918
|
+
spotlightColor = "rgba(255, 255, 255, 0.25)",
|
|
2919
|
+
spotlightSize = 300,
|
|
2920
|
+
intensity = 0.8,
|
|
2921
|
+
borderGlow = true,
|
|
2922
|
+
...props
|
|
2923
|
+
}, ref) => {
|
|
2924
|
+
const cardRef = useRef(null);
|
|
2925
|
+
const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });
|
|
2926
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
2927
|
+
const handleMouseMove2 = (e) => {
|
|
2928
|
+
if (!cardRef.current)
|
|
2929
|
+
return;
|
|
2930
|
+
const rect = cardRef.current.getBoundingClientRect();
|
|
2931
|
+
const x = e.clientX - rect.left;
|
|
2932
|
+
const y = e.clientY - rect.top;
|
|
2933
|
+
setMousePosition({ x, y });
|
|
2934
|
+
};
|
|
2935
|
+
const handleMouseEnter = () => {
|
|
2936
|
+
setIsHovered(true);
|
|
2937
|
+
};
|
|
2938
|
+
const handleMouseLeave2 = () => {
|
|
2939
|
+
setIsHovered(false);
|
|
2940
|
+
};
|
|
2941
|
+
return /* @__PURE__ */ jsxs(
|
|
2942
|
+
motion.div,
|
|
2943
|
+
{
|
|
2944
|
+
ref: (node) => {
|
|
2945
|
+
cardRef.current = node;
|
|
2946
|
+
if (typeof ref === "function") {
|
|
2947
|
+
ref(node);
|
|
2948
|
+
} else if (ref) {
|
|
2949
|
+
ref.current = node;
|
|
2950
|
+
}
|
|
2951
|
+
},
|
|
2952
|
+
className: cn(
|
|
2953
|
+
"relative overflow-hidden rounded-lg border bg-card text-card-foreground shadow-sm",
|
|
2954
|
+
className
|
|
2955
|
+
),
|
|
2956
|
+
onMouseMove: handleMouseMove2,
|
|
2957
|
+
onMouseEnter: handleMouseEnter,
|
|
2958
|
+
onMouseLeave: handleMouseLeave2,
|
|
2959
|
+
whileHover: { scale: 1.02 },
|
|
2960
|
+
transition: { duration: 0.2 },
|
|
2961
|
+
...props,
|
|
2962
|
+
children: [
|
|
2963
|
+
/* @__PURE__ */ jsx(
|
|
2964
|
+
motion.div,
|
|
2965
|
+
{
|
|
2966
|
+
className: "absolute inset-0 pointer-events-none",
|
|
2967
|
+
animate: {
|
|
2968
|
+
opacity: isHovered ? intensity : 0
|
|
2969
|
+
},
|
|
2970
|
+
transition: { duration: 0.3 },
|
|
2971
|
+
style: {
|
|
2972
|
+
background: `radial-gradient(${spotlightSize}px circle at ${mousePosition.x}px ${mousePosition.y}px, ${spotlightColor}, transparent 70%)`
|
|
2973
|
+
}
|
|
2974
|
+
}
|
|
2975
|
+
),
|
|
2976
|
+
/* @__PURE__ */ jsx(
|
|
2977
|
+
motion.div,
|
|
2978
|
+
{
|
|
2979
|
+
className: "absolute inset-0 pointer-events-none",
|
|
2980
|
+
animate: {
|
|
2981
|
+
opacity: isHovered ? intensity * 0.5 : 0
|
|
2982
|
+
},
|
|
2983
|
+
transition: { duration: 0.4, delay: 0.1 },
|
|
2984
|
+
style: {
|
|
2985
|
+
background: `radial-gradient(${spotlightSize * 1.5}px circle at ${mousePosition.x}px ${mousePosition.y}px, ${spotlightColor.replace("0.25", "0.1")}, transparent 80%)`
|
|
2986
|
+
}
|
|
2987
|
+
}
|
|
2988
|
+
),
|
|
2989
|
+
borderGlow && /* @__PURE__ */ jsx(
|
|
2990
|
+
motion.div,
|
|
2991
|
+
{
|
|
2992
|
+
className: "absolute inset-0 rounded-lg pointer-events-none",
|
|
2993
|
+
animate: {
|
|
2994
|
+
opacity: isHovered ? 0.6 : 0
|
|
2995
|
+
},
|
|
2996
|
+
transition: { duration: 0.3 },
|
|
2997
|
+
style: {
|
|
2998
|
+
background: `linear-gradient(135deg, transparent 30%, ${spotlightColor.replace("0.25", "0.4")} 50%, transparent 70%)`,
|
|
2999
|
+
backgroundSize: "200% 200%",
|
|
3000
|
+
backgroundPosition: `${mousePosition.x / cardRef.current?.offsetWidth * 100}% ${mousePosition.y / cardRef.current?.offsetHeight * 100}%`
|
|
3001
|
+
}
|
|
3002
|
+
}
|
|
3003
|
+
),
|
|
3004
|
+
/* @__PURE__ */ jsx("div", { className: "relative z-10", children }),
|
|
3005
|
+
/* @__PURE__ */ jsx(
|
|
3006
|
+
motion.div,
|
|
3007
|
+
{
|
|
3008
|
+
className: "absolute inset-0 pointer-events-none",
|
|
3009
|
+
animate: {
|
|
3010
|
+
opacity: isHovered ? 0.3 : 0
|
|
3011
|
+
},
|
|
3012
|
+
transition: { duration: 0.5 },
|
|
3013
|
+
children: [...Array(3)].map((_, i) => /* @__PURE__ */ jsx(
|
|
3014
|
+
motion.div,
|
|
3015
|
+
{
|
|
3016
|
+
className: "absolute w-1 h-1 bg-white rounded-full",
|
|
3017
|
+
animate: isHovered ? {
|
|
3018
|
+
x: [mousePosition.x, mousePosition.x + Math.random() * 100 - 50],
|
|
3019
|
+
y: [mousePosition.y, mousePosition.y + Math.random() * 100 - 50],
|
|
3020
|
+
opacity: [0, 1, 0],
|
|
3021
|
+
scale: [0, 1, 0]
|
|
3022
|
+
} : {},
|
|
3023
|
+
transition: {
|
|
3024
|
+
duration: 2,
|
|
3025
|
+
delay: i * 0.2,
|
|
3026
|
+
repeat: isHovered ? Infinity : 0,
|
|
3027
|
+
ease: "easeOut"
|
|
3028
|
+
},
|
|
3029
|
+
style: {
|
|
3030
|
+
left: mousePosition.x,
|
|
3031
|
+
top: mousePosition.y
|
|
3032
|
+
}
|
|
3033
|
+
},
|
|
3034
|
+
i
|
|
3035
|
+
))
|
|
3036
|
+
}
|
|
3037
|
+
)
|
|
3038
|
+
]
|
|
3039
|
+
}
|
|
3040
|
+
);
|
|
3041
|
+
}
|
|
3042
|
+
);
|
|
3043
|
+
SpotlightCardInternal.displayName = "SpotlightCardInternal";
|
|
3044
|
+
var SpotlightCard = React55__default.forwardRef(
|
|
3045
|
+
({ className, ...props }, ref) => {
|
|
3046
|
+
const docsProAccess = { hasAccess: true };
|
|
3047
|
+
const { hasProAccess, isLoading } = useSubscription();
|
|
3048
|
+
if (!docsProAccess.isDocsMode && !isLoading && !hasProAccess) {
|
|
3049
|
+
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: [
|
|
3050
|
+
/* @__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" }) }),
|
|
3051
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
3052
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-sm mb-2", children: "Pro Feature" }),
|
|
3053
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs mb-4", children: "Spotlight Card is available exclusively to MoonUI Pro subscribers." }),
|
|
3054
|
+
/* @__PURE__ */ jsx("a", { href: "/pricing", children: /* @__PURE__ */ jsxs(Button, { size: "sm", children: [
|
|
3055
|
+
/* @__PURE__ */ jsx(Sparkles, { className: "mr-2 h-4 w-4" }),
|
|
3056
|
+
"Upgrade to Pro"
|
|
3057
|
+
] }) })
|
|
3058
|
+
] })
|
|
3059
|
+
] }) }) });
|
|
3060
|
+
}
|
|
3061
|
+
return /* @__PURE__ */ jsx(SpotlightCardInternal, { className, ref, ...props });
|
|
3062
|
+
}
|
|
3063
|
+
);
|
|
3064
|
+
SpotlightCard.displayName = "SpotlightCard";
|
|
2154
3065
|
var badgeVariants = cva(
|
|
2155
3066
|
[
|
|
2156
3067
|
"inline-flex items-center gap-1.5",
|
|
@@ -2314,22 +3225,6 @@ function Badge({
|
|
|
2314
3225
|
}
|
|
2315
3226
|
);
|
|
2316
3227
|
}
|
|
2317
|
-
|
|
2318
|
-
// src/hooks/use-subscription.ts
|
|
2319
|
-
function useSubscription() {
|
|
2320
|
-
return {
|
|
2321
|
-
isLoading: false,
|
|
2322
|
-
isAuthenticated: true,
|
|
2323
|
-
isAdmin: false,
|
|
2324
|
-
hasProAccess: true,
|
|
2325
|
-
// Pro package kullanıcıları varsayılan olarak pro erişime sahip
|
|
2326
|
-
subscriptionPlan: "pro",
|
|
2327
|
-
subscription: {
|
|
2328
|
-
status: "active",
|
|
2329
|
-
plan: "pro"
|
|
2330
|
-
}
|
|
2331
|
-
};
|
|
2332
|
-
}
|
|
2333
3228
|
var inputWrapperVariants = cva(
|
|
2334
3229
|
"group relative flex items-center w-full transition-colors",
|
|
2335
3230
|
{
|
|
@@ -2403,7 +3298,7 @@ var inputVariants = cva(
|
|
|
2403
3298
|
}
|
|
2404
3299
|
}
|
|
2405
3300
|
);
|
|
2406
|
-
var Input =
|
|
3301
|
+
var Input = React55.forwardRef(
|
|
2407
3302
|
({
|
|
2408
3303
|
className,
|
|
2409
3304
|
wrapperClassName,
|
|
@@ -2506,26 +3401,26 @@ function composeRefs(...refs) {
|
|
|
2506
3401
|
};
|
|
2507
3402
|
}
|
|
2508
3403
|
function useComposedRefs(...refs) {
|
|
2509
|
-
return
|
|
3404
|
+
return React55.useCallback(composeRefs(...refs), refs);
|
|
2510
3405
|
}
|
|
2511
3406
|
function createSlot(ownerName) {
|
|
2512
3407
|
const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
|
|
2513
|
-
const Slot22 =
|
|
3408
|
+
const Slot22 = React55.forwardRef((props, forwardedRef) => {
|
|
2514
3409
|
const { children, ...slotProps } = props;
|
|
2515
|
-
const childrenArray =
|
|
3410
|
+
const childrenArray = React55.Children.toArray(children);
|
|
2516
3411
|
const slottable = childrenArray.find(isSlottable);
|
|
2517
3412
|
if (slottable) {
|
|
2518
3413
|
const newElement = slottable.props.children;
|
|
2519
3414
|
const newChildren = childrenArray.map((child) => {
|
|
2520
3415
|
if (child === slottable) {
|
|
2521
|
-
if (
|
|
2522
|
-
return
|
|
2523
|
-
return
|
|
3416
|
+
if (React55.Children.count(newElement) > 1)
|
|
3417
|
+
return React55.Children.only(null);
|
|
3418
|
+
return React55.isValidElement(newElement) ? newElement.props.children : null;
|
|
2524
3419
|
} else {
|
|
2525
3420
|
return child;
|
|
2526
3421
|
}
|
|
2527
3422
|
});
|
|
2528
|
-
return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children:
|
|
3423
|
+
return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React55.isValidElement(newElement) ? React55.cloneElement(newElement, void 0, newChildren) : null });
|
|
2529
3424
|
}
|
|
2530
3425
|
return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
|
|
2531
3426
|
});
|
|
@@ -2533,24 +3428,24 @@ function createSlot(ownerName) {
|
|
|
2533
3428
|
return Slot22;
|
|
2534
3429
|
}
|
|
2535
3430
|
function createSlotClone(ownerName) {
|
|
2536
|
-
const SlotClone =
|
|
3431
|
+
const SlotClone = React55.forwardRef((props, forwardedRef) => {
|
|
2537
3432
|
const { children, ...slotProps } = props;
|
|
2538
|
-
if (
|
|
3433
|
+
if (React55.isValidElement(children)) {
|
|
2539
3434
|
const childrenRef = getElementRef(children);
|
|
2540
3435
|
const props2 = mergeProps(slotProps, children.props);
|
|
2541
|
-
if (children.type !==
|
|
3436
|
+
if (children.type !== React55.Fragment) {
|
|
2542
3437
|
props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
|
|
2543
3438
|
}
|
|
2544
|
-
return
|
|
3439
|
+
return React55.cloneElement(children, props2);
|
|
2545
3440
|
}
|
|
2546
|
-
return
|
|
3441
|
+
return React55.Children.count(children) > 1 ? React55.Children.only(null) : null;
|
|
2547
3442
|
});
|
|
2548
3443
|
SlotClone.displayName = `${ownerName}.SlotClone`;
|
|
2549
3444
|
return SlotClone;
|
|
2550
3445
|
}
|
|
2551
3446
|
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
2552
3447
|
function isSlottable(child) {
|
|
2553
|
-
return
|
|
3448
|
+
return React55.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
2554
3449
|
}
|
|
2555
3450
|
function mergeProps(slotProps, childProps) {
|
|
2556
3451
|
const overrideProps = { ...childProps };
|
|
@@ -2610,7 +3505,7 @@ var NODES = [
|
|
|
2610
3505
|
];
|
|
2611
3506
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
2612
3507
|
const Slot4 = createSlot(`Primitive.${node}`);
|
|
2613
|
-
const Node4 =
|
|
3508
|
+
const Node4 = React55.forwardRef((props, forwardedRef) => {
|
|
2614
3509
|
const { asChild, ...primitiveProps } = props;
|
|
2615
3510
|
const Comp = asChild ? Slot4 : node;
|
|
2616
3511
|
if (typeof window !== "undefined") {
|
|
@@ -2626,7 +3521,7 @@ function dispatchDiscreteCustomEvent(target, event) {
|
|
|
2626
3521
|
ReactDOM.flushSync(() => target.dispatchEvent(event));
|
|
2627
3522
|
}
|
|
2628
3523
|
var NAME = "Label";
|
|
2629
|
-
var Label =
|
|
3524
|
+
var Label = React55.forwardRef((props, forwardedRef) => {
|
|
2630
3525
|
return /* @__PURE__ */ jsx(
|
|
2631
3526
|
Primitive.label,
|
|
2632
3527
|
{
|
|
@@ -2648,7 +3543,7 @@ var Root = Label;
|
|
|
2648
3543
|
var labelVariants = cva(
|
|
2649
3544
|
"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"
|
|
2650
3545
|
);
|
|
2651
|
-
var Label2 =
|
|
3546
|
+
var Label2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2652
3547
|
Root,
|
|
2653
3548
|
{
|
|
2654
3549
|
ref,
|
|
@@ -2657,7 +3552,7 @@ var Label2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2657
3552
|
}
|
|
2658
3553
|
));
|
|
2659
3554
|
Label2.displayName = Root.displayName;
|
|
2660
|
-
var Textarea =
|
|
3555
|
+
var Textarea = React55__default.forwardRef(
|
|
2661
3556
|
({ className, ...props }, ref) => {
|
|
2662
3557
|
return /* @__PURE__ */ jsx(
|
|
2663
3558
|
"textarea",
|
|
@@ -2891,45 +3786,45 @@ function $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {
|
|
|
2891
3786
|
});
|
|
2892
3787
|
const CollectionProvider = (props) => {
|
|
2893
3788
|
const { scope, children } = props;
|
|
2894
|
-
const ref =
|
|
2895
|
-
const itemMap =
|
|
2896
|
-
return /* @__PURE__ */
|
|
3789
|
+
const ref = React55__default.useRef(null);
|
|
3790
|
+
const itemMap = React55__default.useRef(/* @__PURE__ */ new Map()).current;
|
|
3791
|
+
return /* @__PURE__ */ React55__default.createElement(CollectionProviderImpl, {
|
|
2897
3792
|
scope,
|
|
2898
3793
|
itemMap,
|
|
2899
3794
|
collectionRef: ref
|
|
2900
3795
|
}, children);
|
|
2901
3796
|
};
|
|
2902
3797
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
2903
|
-
const CollectionSlot = /* @__PURE__ */
|
|
3798
|
+
const CollectionSlot = /* @__PURE__ */ React55__default.forwardRef((props, forwardedRef) => {
|
|
2904
3799
|
const { scope, children } = props;
|
|
2905
3800
|
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
2906
3801
|
const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);
|
|
2907
|
-
return /* @__PURE__ */
|
|
3802
|
+
return /* @__PURE__ */ React55__default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {
|
|
2908
3803
|
ref: composedRefs
|
|
2909
3804
|
}, children);
|
|
2910
3805
|
});
|
|
2911
3806
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
2912
3807
|
const ITEM_DATA_ATTR = "data-radix-collection-item";
|
|
2913
|
-
const CollectionItemSlot = /* @__PURE__ */
|
|
3808
|
+
const CollectionItemSlot = /* @__PURE__ */ React55__default.forwardRef((props, forwardedRef) => {
|
|
2914
3809
|
const { scope, children, ...itemData } = props;
|
|
2915
|
-
const ref =
|
|
3810
|
+
const ref = React55__default.useRef(null);
|
|
2916
3811
|
const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
|
|
2917
3812
|
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
2918
|
-
|
|
3813
|
+
React55__default.useEffect(() => {
|
|
2919
3814
|
context.itemMap.set(ref, {
|
|
2920
3815
|
ref,
|
|
2921
3816
|
...itemData
|
|
2922
3817
|
});
|
|
2923
3818
|
return () => void context.itemMap.delete(ref);
|
|
2924
3819
|
});
|
|
2925
|
-
return /* @__PURE__ */
|
|
3820
|
+
return /* @__PURE__ */ React55__default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {
|
|
2926
3821
|
[ITEM_DATA_ATTR]: "",
|
|
2927
3822
|
ref: composedRefs
|
|
2928
3823
|
}, children);
|
|
2929
3824
|
});
|
|
2930
3825
|
function useCollection4(scope) {
|
|
2931
3826
|
const context = useCollectionContext(name + "CollectionConsumer", scope);
|
|
2932
|
-
const getItems =
|
|
3827
|
+
const getItems = React55__default.useCallback(() => {
|
|
2933
3828
|
const collectionNode = context.collectionRef.current;
|
|
2934
3829
|
if (!collectionNode)
|
|
2935
3830
|
return [];
|
|
@@ -3516,10 +4411,10 @@ var $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || g
|
|
|
3516
4411
|
};
|
|
3517
4412
|
|
|
3518
4413
|
// node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-id/dist/index.mjs
|
|
3519
|
-
var $1746a345f3d73bb7$var$useReactId =
|
|
4414
|
+
var $1746a345f3d73bb7$var$useReactId = React55["useId".toString()] || (() => void 0);
|
|
3520
4415
|
var $1746a345f3d73bb7$var$count = 0;
|
|
3521
4416
|
function $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {
|
|
3522
|
-
const [id, setId] =
|
|
4417
|
+
const [id, setId] = React55.useState($1746a345f3d73bb7$var$useReactId());
|
|
3523
4418
|
$9f79659886946c16$export$e5c5a5f917a5871c(() => {
|
|
3524
4419
|
if (!deterministicId)
|
|
3525
4420
|
setId(
|
|
@@ -5194,7 +6089,7 @@ function roundByDPR(element, value) {
|
|
|
5194
6089
|
return Math.round(value * dpr) / dpr;
|
|
5195
6090
|
}
|
|
5196
6091
|
function useLatestRef(value) {
|
|
5197
|
-
const ref =
|
|
6092
|
+
const ref = React55.useRef(value);
|
|
5198
6093
|
index(() => {
|
|
5199
6094
|
ref.current = value;
|
|
5200
6095
|
});
|
|
@@ -5217,7 +6112,7 @@ function useFloating(options) {
|
|
|
5217
6112
|
whileElementsMounted,
|
|
5218
6113
|
open
|
|
5219
6114
|
} = options;
|
|
5220
|
-
const [data, setData] =
|
|
6115
|
+
const [data, setData] = React55.useState({
|
|
5221
6116
|
x: 0,
|
|
5222
6117
|
y: 0,
|
|
5223
6118
|
strategy,
|
|
@@ -5225,19 +6120,19 @@ function useFloating(options) {
|
|
|
5225
6120
|
middlewareData: {},
|
|
5226
6121
|
isPositioned: false
|
|
5227
6122
|
});
|
|
5228
|
-
const [latestMiddleware, setLatestMiddleware] =
|
|
6123
|
+
const [latestMiddleware, setLatestMiddleware] = React55.useState(middleware);
|
|
5229
6124
|
if (!deepEqual(latestMiddleware, middleware)) {
|
|
5230
6125
|
setLatestMiddleware(middleware);
|
|
5231
6126
|
}
|
|
5232
|
-
const [_reference, _setReference] =
|
|
5233
|
-
const [_floating, _setFloating] =
|
|
5234
|
-
const setReference =
|
|
6127
|
+
const [_reference, _setReference] = React55.useState(null);
|
|
6128
|
+
const [_floating, _setFloating] = React55.useState(null);
|
|
6129
|
+
const setReference = React55.useCallback((node) => {
|
|
5235
6130
|
if (node !== referenceRef.current) {
|
|
5236
6131
|
referenceRef.current = node;
|
|
5237
6132
|
_setReference(node);
|
|
5238
6133
|
}
|
|
5239
6134
|
}, []);
|
|
5240
|
-
const setFloating =
|
|
6135
|
+
const setFloating = React55.useCallback((node) => {
|
|
5241
6136
|
if (node !== floatingRef.current) {
|
|
5242
6137
|
floatingRef.current = node;
|
|
5243
6138
|
_setFloating(node);
|
|
@@ -5245,14 +6140,14 @@ function useFloating(options) {
|
|
|
5245
6140
|
}, []);
|
|
5246
6141
|
const referenceEl = externalReference || _reference;
|
|
5247
6142
|
const floatingEl = externalFloating || _floating;
|
|
5248
|
-
const referenceRef =
|
|
5249
|
-
const floatingRef =
|
|
5250
|
-
const dataRef =
|
|
6143
|
+
const referenceRef = React55.useRef(null);
|
|
6144
|
+
const floatingRef = React55.useRef(null);
|
|
6145
|
+
const dataRef = React55.useRef(data);
|
|
5251
6146
|
const hasWhileElementsMounted = whileElementsMounted != null;
|
|
5252
6147
|
const whileElementsMountedRef = useLatestRef(whileElementsMounted);
|
|
5253
6148
|
const platformRef = useLatestRef(platform2);
|
|
5254
6149
|
const openRef = useLatestRef(open);
|
|
5255
|
-
const update =
|
|
6150
|
+
const update = React55.useCallback(() => {
|
|
5256
6151
|
if (!referenceRef.current || !floatingRef.current) {
|
|
5257
6152
|
return;
|
|
5258
6153
|
}
|
|
@@ -5290,7 +6185,7 @@ function useFloating(options) {
|
|
|
5290
6185
|
}));
|
|
5291
6186
|
}
|
|
5292
6187
|
}, [open]);
|
|
5293
|
-
const isMountedRef =
|
|
6188
|
+
const isMountedRef = React55.useRef(false);
|
|
5294
6189
|
index(() => {
|
|
5295
6190
|
isMountedRef.current = true;
|
|
5296
6191
|
return () => {
|
|
@@ -5309,17 +6204,17 @@ function useFloating(options) {
|
|
|
5309
6204
|
update();
|
|
5310
6205
|
}
|
|
5311
6206
|
}, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);
|
|
5312
|
-
const refs =
|
|
6207
|
+
const refs = React55.useMemo(() => ({
|
|
5313
6208
|
reference: referenceRef,
|
|
5314
6209
|
floating: floatingRef,
|
|
5315
6210
|
setReference,
|
|
5316
6211
|
setFloating
|
|
5317
6212
|
}), [setReference, setFloating]);
|
|
5318
|
-
const elements =
|
|
6213
|
+
const elements = React55.useMemo(() => ({
|
|
5319
6214
|
reference: referenceEl,
|
|
5320
6215
|
floating: floatingEl
|
|
5321
6216
|
}), [referenceEl, floatingEl]);
|
|
5322
|
-
const floatingStyles =
|
|
6217
|
+
const floatingStyles = React55.useMemo(() => {
|
|
5323
6218
|
const initialStyles = {
|
|
5324
6219
|
position: strategy,
|
|
5325
6220
|
left: 0,
|
|
@@ -5345,7 +6240,7 @@ function useFloating(options) {
|
|
|
5345
6240
|
top: y
|
|
5346
6241
|
};
|
|
5347
6242
|
}, [strategy, transform, elements.floating, data.x, data.y]);
|
|
5348
|
-
return
|
|
6243
|
+
return React55.useMemo(() => ({
|
|
5349
6244
|
...data,
|
|
5350
6245
|
update,
|
|
5351
6246
|
refs,
|
|
@@ -6077,7 +6972,7 @@ function useCallbackRef(initialValue, callback) {
|
|
|
6077
6972
|
ref.callback = callback;
|
|
6078
6973
|
return ref.facade;
|
|
6079
6974
|
}
|
|
6080
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ?
|
|
6975
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React55.useLayoutEffect : React55.useEffect;
|
|
6081
6976
|
var currentValues = /* @__PURE__ */ new WeakMap();
|
|
6082
6977
|
function useMergeRefs(refs, defaultValue) {
|
|
6083
6978
|
var callbackRef = useCallbackRef(defaultValue || null, function(newValue) {
|
|
@@ -6201,7 +7096,7 @@ var SideCar = function(_a2) {
|
|
|
6201
7096
|
if (!Target) {
|
|
6202
7097
|
throw new Error("Sidecar medium not found");
|
|
6203
7098
|
}
|
|
6204
|
-
return
|
|
7099
|
+
return React55.createElement(Target, __assign({}, rest));
|
|
6205
7100
|
};
|
|
6206
7101
|
SideCar.isSideCarExport = true;
|
|
6207
7102
|
function exportSidecar(medium, exported) {
|
|
@@ -6216,9 +7111,9 @@ var effectCar = createSidecarMedium();
|
|
|
6216
7111
|
var nothing = function() {
|
|
6217
7112
|
return;
|
|
6218
7113
|
};
|
|
6219
|
-
var RemoveScroll =
|
|
6220
|
-
var ref =
|
|
6221
|
-
var _a2 =
|
|
7114
|
+
var RemoveScroll = React55.forwardRef(function(props, parentRef) {
|
|
7115
|
+
var ref = React55.useRef(null);
|
|
7116
|
+
var _a2 = React55.useState({
|
|
6222
7117
|
onScrollCapture: nothing,
|
|
6223
7118
|
onWheelCapture: nothing,
|
|
6224
7119
|
onTouchMoveCapture: nothing
|
|
@@ -6227,11 +7122,11 @@ var RemoveScroll = React50.forwardRef(function(props, parentRef) {
|
|
|
6227
7122
|
var SideCar2 = sideCar;
|
|
6228
7123
|
var containerRef = useMergeRefs([ref, parentRef]);
|
|
6229
7124
|
var containerProps = __assign(__assign({}, rest), callbacks);
|
|
6230
|
-
return
|
|
6231
|
-
|
|
7125
|
+
return React55.createElement(
|
|
7126
|
+
React55.Fragment,
|
|
6232
7127
|
null,
|
|
6233
|
-
enabled &&
|
|
6234
|
-
forwardProps ?
|
|
7128
|
+
enabled && React55.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref }),
|
|
7129
|
+
forwardProps ? React55.cloneElement(React55.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React55.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children)
|
|
6235
7130
|
);
|
|
6236
7131
|
});
|
|
6237
7132
|
RemoveScroll.defaultProps = {
|
|
@@ -6300,7 +7195,7 @@ var stylesheetSingleton = function() {
|
|
|
6300
7195
|
var styleHookSingleton = function() {
|
|
6301
7196
|
var sheet = stylesheetSingleton();
|
|
6302
7197
|
return function(styles, isDynamic) {
|
|
6303
|
-
|
|
7198
|
+
React55.useEffect(function() {
|
|
6304
7199
|
sheet.add(styles);
|
|
6305
7200
|
return function() {
|
|
6306
7201
|
sheet.remove();
|
|
@@ -6374,7 +7269,7 @@ var getCurrentUseCounter = function() {
|
|
|
6374
7269
|
return isFinite(counter) ? counter : 0;
|
|
6375
7270
|
};
|
|
6376
7271
|
var useLockAttribute = function() {
|
|
6377
|
-
|
|
7272
|
+
React55.useEffect(function() {
|
|
6378
7273
|
document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());
|
|
6379
7274
|
return function() {
|
|
6380
7275
|
var newCounter = getCurrentUseCounter() - 1;
|
|
@@ -6389,10 +7284,10 @@ var useLockAttribute = function() {
|
|
|
6389
7284
|
var RemoveScrollBar = function(_a2) {
|
|
6390
7285
|
var noRelative = _a2.noRelative, noImportant = _a2.noImportant, _b = _a2.gapMode, gapMode = _b === void 0 ? "margin" : _b;
|
|
6391
7286
|
useLockAttribute();
|
|
6392
|
-
var gap =
|
|
7287
|
+
var gap = React55.useMemo(function() {
|
|
6393
7288
|
return getGapWidth(gapMode);
|
|
6394
7289
|
}, [gapMode]);
|
|
6395
|
-
return
|
|
7290
|
+
return React55.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") });
|
|
6396
7291
|
};
|
|
6397
7292
|
|
|
6398
7293
|
// node_modules/@radix-ui/react-select/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js
|
|
@@ -6525,18 +7420,18 @@ var generateStyle = function(id) {
|
|
|
6525
7420
|
var idCounter = 0;
|
|
6526
7421
|
var lockStack = [];
|
|
6527
7422
|
function RemoveScrollSideCar(props) {
|
|
6528
|
-
var shouldPreventQueue =
|
|
6529
|
-
var touchStartRef =
|
|
6530
|
-
var activeAxis =
|
|
6531
|
-
var id =
|
|
6532
|
-
var Style2 =
|
|
7423
|
+
var shouldPreventQueue = React55.useRef([]);
|
|
7424
|
+
var touchStartRef = React55.useRef([0, 0]);
|
|
7425
|
+
var activeAxis = React55.useRef();
|
|
7426
|
+
var id = React55.useState(idCounter++)[0];
|
|
7427
|
+
var Style2 = React55.useState(function() {
|
|
6533
7428
|
return styleSingleton();
|
|
6534
7429
|
})[0];
|
|
6535
|
-
var lastProps =
|
|
6536
|
-
|
|
7430
|
+
var lastProps = React55.useRef(props);
|
|
7431
|
+
React55.useEffect(function() {
|
|
6537
7432
|
lastProps.current = props;
|
|
6538
7433
|
}, [props]);
|
|
6539
|
-
|
|
7434
|
+
React55.useEffect(function() {
|
|
6540
7435
|
if (props.inert) {
|
|
6541
7436
|
document.body.classList.add("block-interactivity-".concat(id));
|
|
6542
7437
|
var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
|
|
@@ -6552,7 +7447,7 @@ function RemoveScrollSideCar(props) {
|
|
|
6552
7447
|
}
|
|
6553
7448
|
return;
|
|
6554
7449
|
}, [props.inert, props.lockRef.current, props.shards]);
|
|
6555
|
-
var shouldCancelEvent =
|
|
7450
|
+
var shouldCancelEvent = React55.useCallback(function(event, parent) {
|
|
6556
7451
|
if ("touches" in event && event.touches.length === 2) {
|
|
6557
7452
|
return !lastProps.current.allowPinchZoom;
|
|
6558
7453
|
}
|
|
@@ -6588,7 +7483,7 @@ function RemoveScrollSideCar(props) {
|
|
|
6588
7483
|
var cancelingAxis = activeAxis.current || currentAxis;
|
|
6589
7484
|
return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true);
|
|
6590
7485
|
}, []);
|
|
6591
|
-
var shouldPrevent =
|
|
7486
|
+
var shouldPrevent = React55.useCallback(function(_event) {
|
|
6592
7487
|
var event = _event;
|
|
6593
7488
|
if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) {
|
|
6594
7489
|
return;
|
|
@@ -6615,7 +7510,7 @@ function RemoveScrollSideCar(props) {
|
|
|
6615
7510
|
}
|
|
6616
7511
|
}
|
|
6617
7512
|
}, []);
|
|
6618
|
-
var shouldCancel =
|
|
7513
|
+
var shouldCancel = React55.useCallback(function(name, delta, target, should) {
|
|
6619
7514
|
var event = { name, delta, target, should };
|
|
6620
7515
|
shouldPreventQueue.current.push(event);
|
|
6621
7516
|
setTimeout(function() {
|
|
@@ -6624,17 +7519,17 @@ function RemoveScrollSideCar(props) {
|
|
|
6624
7519
|
});
|
|
6625
7520
|
}, 1);
|
|
6626
7521
|
}, []);
|
|
6627
|
-
var scrollTouchStart =
|
|
7522
|
+
var scrollTouchStart = React55.useCallback(function(event) {
|
|
6628
7523
|
touchStartRef.current = getTouchXY(event);
|
|
6629
7524
|
activeAxis.current = void 0;
|
|
6630
7525
|
}, []);
|
|
6631
|
-
var scrollWheel =
|
|
7526
|
+
var scrollWheel = React55.useCallback(function(event) {
|
|
6632
7527
|
shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
|
|
6633
7528
|
}, []);
|
|
6634
|
-
var scrollTouchMove =
|
|
7529
|
+
var scrollTouchMove = React55.useCallback(function(event) {
|
|
6635
7530
|
shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
|
|
6636
7531
|
}, []);
|
|
6637
|
-
|
|
7532
|
+
React55.useEffect(function() {
|
|
6638
7533
|
lockStack.push(Style2);
|
|
6639
7534
|
props.setCallbacks({
|
|
6640
7535
|
onScrollCapture: scrollWheel,
|
|
@@ -6654,11 +7549,11 @@ function RemoveScrollSideCar(props) {
|
|
|
6654
7549
|
};
|
|
6655
7550
|
}, []);
|
|
6656
7551
|
var removeScrollBar = props.removeScrollBar, inert = props.inert;
|
|
6657
|
-
return
|
|
6658
|
-
|
|
7552
|
+
return React55.createElement(
|
|
7553
|
+
React55.Fragment,
|
|
6659
7554
|
null,
|
|
6660
|
-
inert ?
|
|
6661
|
-
removeScrollBar ?
|
|
7555
|
+
inert ? React55.createElement(Style2, { styles: generateStyle(id) }) : null,
|
|
7556
|
+
removeScrollBar ? React55.createElement(RemoveScrollBar, { gapMode: "margin" }) : null
|
|
6662
7557
|
);
|
|
6663
7558
|
}
|
|
6664
7559
|
|
|
@@ -6666,8 +7561,8 @@ function RemoveScrollSideCar(props) {
|
|
|
6666
7561
|
var sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar);
|
|
6667
7562
|
|
|
6668
7563
|
// node_modules/@radix-ui/react-select/node_modules/react-remove-scroll/dist/es2015/Combination.js
|
|
6669
|
-
var ReactRemoveScroll =
|
|
6670
|
-
return
|
|
7564
|
+
var ReactRemoveScroll = React55.forwardRef(function(props, ref) {
|
|
7565
|
+
return React55.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default }));
|
|
6671
7566
|
});
|
|
6672
7567
|
ReactRemoveScroll.classNames = RemoveScroll.classNames;
|
|
6673
7568
|
var Combination_default = ReactRemoveScroll;
|
|
@@ -7757,7 +8652,7 @@ var $cc7e05a45900e73f$export$1ff3c3f08ae963c0 = $cc7e05a45900e73f$export$eba4b1d
|
|
|
7757
8652
|
var Select = $cc7e05a45900e73f$export$be92b6f5f03c0fe9;
|
|
7758
8653
|
Select.displayName = "Select";
|
|
7759
8654
|
var SelectValue = $cc7e05a45900e73f$export$4c8d1a57a761ef94;
|
|
7760
|
-
var SelectTrigger =
|
|
8655
|
+
var SelectTrigger = React55.forwardRef(({ className, children, variant = "standard", size: size4 = "md", error, success, loading, leftIcon, rightIcon, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
7761
8656
|
$cc7e05a45900e73f$export$41fb9f06171c75f4,
|
|
7762
8657
|
{
|
|
7763
8658
|
ref,
|
|
@@ -7799,7 +8694,7 @@ var SelectTrigger = React50.forwardRef(({ className, children, variant = "standa
|
|
|
7799
8694
|
}
|
|
7800
8695
|
));
|
|
7801
8696
|
SelectTrigger.displayName = $cc7e05a45900e73f$export$41fb9f06171c75f4.displayName;
|
|
7802
|
-
var SelectScrollUpButton =
|
|
8697
|
+
var SelectScrollUpButton = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7803
8698
|
$cc7e05a45900e73f$export$2f60d3ec9ad468f2,
|
|
7804
8699
|
{
|
|
7805
8700
|
ref,
|
|
@@ -7812,7 +8707,7 @@ var SelectScrollUpButton = React50.forwardRef(({ className, ...props }, ref) =>
|
|
|
7812
8707
|
}
|
|
7813
8708
|
));
|
|
7814
8709
|
SelectScrollUpButton.displayName = $cc7e05a45900e73f$export$2f60d3ec9ad468f2.displayName;
|
|
7815
|
-
var SelectScrollDownButton =
|
|
8710
|
+
var SelectScrollDownButton = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7816
8711
|
$cc7e05a45900e73f$export$bf1aedc3039c8d63,
|
|
7817
8712
|
{
|
|
7818
8713
|
ref,
|
|
@@ -7825,7 +8720,7 @@ var SelectScrollDownButton = React50.forwardRef(({ className, ...props }, ref) =
|
|
|
7825
8720
|
}
|
|
7826
8721
|
));
|
|
7827
8722
|
SelectScrollDownButton.displayName = $cc7e05a45900e73f$export$bf1aedc3039c8d63.displayName;
|
|
7828
|
-
var SelectContent =
|
|
8723
|
+
var SelectContent = React55.forwardRef(({ className, children, position = "item-aligned", ...props }, ref) => /* @__PURE__ */ jsx($cc7e05a45900e73f$export$602eac185826482c, { children: /* @__PURE__ */ jsxs(
|
|
7829
8724
|
$cc7e05a45900e73f$export$7c6e2c02157bb7d2,
|
|
7830
8725
|
{
|
|
7831
8726
|
ref,
|
|
@@ -7862,7 +8757,7 @@ var SelectContent = React50.forwardRef(({ className, children, position = "item-
|
|
|
7862
8757
|
}
|
|
7863
8758
|
) }));
|
|
7864
8759
|
SelectContent.displayName = $cc7e05a45900e73f$export$7c6e2c02157bb7d2.displayName;
|
|
7865
|
-
var SelectLabel =
|
|
8760
|
+
var SelectLabel = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7866
8761
|
$cc7e05a45900e73f$export$b04be29aa201d4f5,
|
|
7867
8762
|
{
|
|
7868
8763
|
ref,
|
|
@@ -7871,7 +8766,7 @@ var SelectLabel = React50.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
7871
8766
|
}
|
|
7872
8767
|
));
|
|
7873
8768
|
SelectLabel.displayName = $cc7e05a45900e73f$export$b04be29aa201d4f5.displayName;
|
|
7874
|
-
var SelectItem =
|
|
8769
|
+
var SelectItem = React55.forwardRef(({ className, children, variant = "default", size: size4 = "md", rightIcon, customIndicator, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
7875
8770
|
$cc7e05a45900e73f$export$6d08773d2e66f8f2,
|
|
7876
8771
|
{
|
|
7877
8772
|
ref,
|
|
@@ -7898,7 +8793,7 @@ var SelectItem = React50.forwardRef(({ className, children, variant = "default",
|
|
|
7898
8793
|
}
|
|
7899
8794
|
));
|
|
7900
8795
|
SelectItem.displayName = $cc7e05a45900e73f$export$6d08773d2e66f8f2.displayName;
|
|
7901
|
-
var SelectSeparator =
|
|
8796
|
+
var SelectSeparator = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7902
8797
|
$cc7e05a45900e73f$export$1ff3c3f08ae963c0,
|
|
7903
8798
|
{
|
|
7904
8799
|
ref,
|
|
@@ -7918,15 +8813,15 @@ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForD
|
|
|
7918
8813
|
};
|
|
7919
8814
|
}
|
|
7920
8815
|
function createContext2(rootComponentName, defaultContext) {
|
|
7921
|
-
const Context =
|
|
8816
|
+
const Context = React55.createContext(defaultContext);
|
|
7922
8817
|
const Provider3 = (props) => {
|
|
7923
8818
|
const { children, ...context } = props;
|
|
7924
|
-
const value =
|
|
8819
|
+
const value = React55.useMemo(() => context, Object.values(context));
|
|
7925
8820
|
return /* @__PURE__ */ jsx(Context.Provider, { value, children });
|
|
7926
8821
|
};
|
|
7927
8822
|
Provider3.displayName = rootComponentName + "Provider";
|
|
7928
8823
|
function useContext23(consumerName) {
|
|
7929
|
-
const context =
|
|
8824
|
+
const context = React55.useContext(Context);
|
|
7930
8825
|
if (context)
|
|
7931
8826
|
return context;
|
|
7932
8827
|
if (defaultContext !== void 0)
|
|
@@ -7938,19 +8833,19 @@ function createContext2(rootComponentName, defaultContext) {
|
|
|
7938
8833
|
function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
7939
8834
|
let defaultContexts = [];
|
|
7940
8835
|
function createContext32(rootComponentName, defaultContext) {
|
|
7941
|
-
const BaseContext =
|
|
8836
|
+
const BaseContext = React55.createContext(defaultContext);
|
|
7942
8837
|
const index2 = defaultContexts.length;
|
|
7943
8838
|
defaultContexts = [...defaultContexts, defaultContext];
|
|
7944
8839
|
const Provider3 = (props) => {
|
|
7945
8840
|
const { scope, children, ...context } = props;
|
|
7946
8841
|
const Context = scope?.[scopeName]?.[index2] || BaseContext;
|
|
7947
|
-
const value =
|
|
8842
|
+
const value = React55.useMemo(() => context, Object.values(context));
|
|
7948
8843
|
return /* @__PURE__ */ jsx(Context.Provider, { value, children });
|
|
7949
8844
|
};
|
|
7950
8845
|
Provider3.displayName = rootComponentName + "Provider";
|
|
7951
8846
|
function useContext23(consumerName, scope) {
|
|
7952
8847
|
const Context = scope?.[scopeName]?.[index2] || BaseContext;
|
|
7953
|
-
const context =
|
|
8848
|
+
const context = React55.useContext(Context);
|
|
7954
8849
|
if (context)
|
|
7955
8850
|
return context;
|
|
7956
8851
|
if (defaultContext !== void 0)
|
|
@@ -7961,11 +8856,11 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
|
7961
8856
|
}
|
|
7962
8857
|
const createScope = () => {
|
|
7963
8858
|
const scopeContexts = defaultContexts.map((defaultContext) => {
|
|
7964
|
-
return
|
|
8859
|
+
return React55.createContext(defaultContext);
|
|
7965
8860
|
});
|
|
7966
8861
|
return function useScope(scope) {
|
|
7967
8862
|
const contexts = scope?.[scopeName] || scopeContexts;
|
|
7968
|
-
return
|
|
8863
|
+
return React55.useMemo(
|
|
7969
8864
|
() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
|
|
7970
8865
|
[scope, contexts]
|
|
7971
8866
|
);
|
|
@@ -7989,27 +8884,27 @@ function composeContextScopes(...scopes) {
|
|
|
7989
8884
|
const currentScope = scopeProps[`__scope${scopeName}`];
|
|
7990
8885
|
return { ...nextScopes2, ...currentScope };
|
|
7991
8886
|
}, {});
|
|
7992
|
-
return
|
|
8887
|
+
return React55.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
|
|
7993
8888
|
};
|
|
7994
8889
|
};
|
|
7995
8890
|
createScope.scopeName = baseScope.scopeName;
|
|
7996
8891
|
return createScope;
|
|
7997
8892
|
}
|
|
7998
|
-
var useLayoutEffect22 = globalThis?.document ?
|
|
8893
|
+
var useLayoutEffect22 = globalThis?.document ? React55.useLayoutEffect : () => {
|
|
7999
8894
|
};
|
|
8000
8895
|
|
|
8001
8896
|
// node_modules/@radix-ui/react-id/dist/index.mjs
|
|
8002
|
-
var useReactId =
|
|
8897
|
+
var useReactId = React55[" useId ".trim().toString()] || (() => void 0);
|
|
8003
8898
|
var count = 0;
|
|
8004
8899
|
function useId(deterministicId) {
|
|
8005
|
-
const [id, setId] =
|
|
8900
|
+
const [id, setId] = React55.useState(useReactId());
|
|
8006
8901
|
useLayoutEffect22(() => {
|
|
8007
8902
|
if (!deterministicId)
|
|
8008
8903
|
setId((reactId) => reactId ?? String(count++));
|
|
8009
8904
|
}, [deterministicId]);
|
|
8010
8905
|
return deterministicId || (id ? `radix-${id}` : "");
|
|
8011
8906
|
}
|
|
8012
|
-
var useInsertionEffect =
|
|
8907
|
+
var useInsertionEffect = React55[" useInsertionEffect ".trim().toString()] || useLayoutEffect22;
|
|
8013
8908
|
function useControllableState({
|
|
8014
8909
|
prop,
|
|
8015
8910
|
defaultProp,
|
|
@@ -8024,8 +8919,8 @@ function useControllableState({
|
|
|
8024
8919
|
const isControlled = prop !== void 0;
|
|
8025
8920
|
const value = isControlled ? prop : uncontrolledProp;
|
|
8026
8921
|
{
|
|
8027
|
-
const isControlledRef =
|
|
8028
|
-
|
|
8922
|
+
const isControlledRef = React55.useRef(prop !== void 0);
|
|
8923
|
+
React55.useEffect(() => {
|
|
8029
8924
|
const wasControlled = isControlledRef.current;
|
|
8030
8925
|
if (wasControlled !== isControlled) {
|
|
8031
8926
|
const from2 = wasControlled ? "controlled" : "uncontrolled";
|
|
@@ -8037,7 +8932,7 @@ function useControllableState({
|
|
|
8037
8932
|
isControlledRef.current = isControlled;
|
|
8038
8933
|
}, [isControlled, caller]);
|
|
8039
8934
|
}
|
|
8040
|
-
const setValue =
|
|
8935
|
+
const setValue = React55.useCallback(
|
|
8041
8936
|
(nextValue) => {
|
|
8042
8937
|
if (isControlled) {
|
|
8043
8938
|
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
@@ -8056,13 +8951,13 @@ function useUncontrolledState({
|
|
|
8056
8951
|
defaultProp,
|
|
8057
8952
|
onChange
|
|
8058
8953
|
}) {
|
|
8059
|
-
const [value, setValue] =
|
|
8060
|
-
const prevValueRef =
|
|
8061
|
-
const onChangeRef =
|
|
8954
|
+
const [value, setValue] = React55.useState(defaultProp);
|
|
8955
|
+
const prevValueRef = React55.useRef(value);
|
|
8956
|
+
const onChangeRef = React55.useRef(onChange);
|
|
8062
8957
|
useInsertionEffect(() => {
|
|
8063
8958
|
onChangeRef.current = onChange;
|
|
8064
8959
|
}, [onChange]);
|
|
8065
|
-
|
|
8960
|
+
React55.useEffect(() => {
|
|
8066
8961
|
if (prevValueRef.current !== value) {
|
|
8067
8962
|
onChangeRef.current?.(value);
|
|
8068
8963
|
prevValueRef.current = value;
|
|
@@ -8074,15 +8969,15 @@ function isFunction(value) {
|
|
|
8074
8969
|
return typeof value === "function";
|
|
8075
8970
|
}
|
|
8076
8971
|
function useCallbackRef2(callback) {
|
|
8077
|
-
const callbackRef =
|
|
8078
|
-
|
|
8972
|
+
const callbackRef = React55.useRef(callback);
|
|
8973
|
+
React55.useEffect(() => {
|
|
8079
8974
|
callbackRef.current = callback;
|
|
8080
8975
|
});
|
|
8081
|
-
return
|
|
8976
|
+
return React55.useMemo(() => (...args) => callbackRef.current?.(...args), []);
|
|
8082
8977
|
}
|
|
8083
8978
|
function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {
|
|
8084
8979
|
const onEscapeKeyDown = useCallbackRef2(onEscapeKeyDownProp);
|
|
8085
|
-
|
|
8980
|
+
React55.useEffect(() => {
|
|
8086
8981
|
const handleKeyDown3 = (event) => {
|
|
8087
8982
|
if (event.key === "Escape") {
|
|
8088
8983
|
onEscapeKeyDown(event);
|
|
@@ -8097,12 +8992,12 @@ var CONTEXT_UPDATE = "dismissableLayer.update";
|
|
|
8097
8992
|
var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
|
|
8098
8993
|
var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
|
|
8099
8994
|
var originalBodyPointerEvents;
|
|
8100
|
-
var DismissableLayerContext =
|
|
8995
|
+
var DismissableLayerContext = React55.createContext({
|
|
8101
8996
|
layers: /* @__PURE__ */ new Set(),
|
|
8102
8997
|
layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
|
|
8103
8998
|
branches: /* @__PURE__ */ new Set()
|
|
8104
8999
|
});
|
|
8105
|
-
var DismissableLayer =
|
|
9000
|
+
var DismissableLayer = React55.forwardRef(
|
|
8106
9001
|
(props, forwardedRef) => {
|
|
8107
9002
|
const {
|
|
8108
9003
|
disableOutsidePointerEvents = false,
|
|
@@ -8113,10 +9008,10 @@ var DismissableLayer = React50.forwardRef(
|
|
|
8113
9008
|
onDismiss,
|
|
8114
9009
|
...layerProps
|
|
8115
9010
|
} = props;
|
|
8116
|
-
const context =
|
|
8117
|
-
const [node, setNode2] =
|
|
9011
|
+
const context = React55.useContext(DismissableLayerContext);
|
|
9012
|
+
const [node, setNode2] = React55.useState(null);
|
|
8118
9013
|
const ownerDocument = node?.ownerDocument ?? globalThis?.document;
|
|
8119
|
-
const [, force] =
|
|
9014
|
+
const [, force] = React55.useState({});
|
|
8120
9015
|
const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode2(node2));
|
|
8121
9016
|
const layers = Array.from(context.layers);
|
|
8122
9017
|
const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
|
|
@@ -8154,7 +9049,7 @@ var DismissableLayer = React50.forwardRef(
|
|
|
8154
9049
|
onDismiss();
|
|
8155
9050
|
}
|
|
8156
9051
|
}, ownerDocument);
|
|
8157
|
-
|
|
9052
|
+
React55.useEffect(() => {
|
|
8158
9053
|
if (!node)
|
|
8159
9054
|
return;
|
|
8160
9055
|
if (disableOutsidePointerEvents) {
|
|
@@ -8172,7 +9067,7 @@ var DismissableLayer = React50.forwardRef(
|
|
|
8172
9067
|
}
|
|
8173
9068
|
};
|
|
8174
9069
|
}, [node, ownerDocument, disableOutsidePointerEvents, context]);
|
|
8175
|
-
|
|
9070
|
+
React55.useEffect(() => {
|
|
8176
9071
|
return () => {
|
|
8177
9072
|
if (!node)
|
|
8178
9073
|
return;
|
|
@@ -8181,7 +9076,7 @@ var DismissableLayer = React50.forwardRef(
|
|
|
8181
9076
|
dispatchUpdate();
|
|
8182
9077
|
};
|
|
8183
9078
|
}, [node, context]);
|
|
8184
|
-
|
|
9079
|
+
React55.useEffect(() => {
|
|
8185
9080
|
const handleUpdate = () => force({});
|
|
8186
9081
|
document.addEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
8187
9082
|
return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
@@ -8207,11 +9102,11 @@ var DismissableLayer = React50.forwardRef(
|
|
|
8207
9102
|
);
|
|
8208
9103
|
DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
|
|
8209
9104
|
var BRANCH_NAME = "DismissableLayerBranch";
|
|
8210
|
-
var DismissableLayerBranch =
|
|
8211
|
-
const context =
|
|
8212
|
-
const ref =
|
|
9105
|
+
var DismissableLayerBranch = React55.forwardRef((props, forwardedRef) => {
|
|
9106
|
+
const context = React55.useContext(DismissableLayerContext);
|
|
9107
|
+
const ref = React55.useRef(null);
|
|
8213
9108
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
8214
|
-
|
|
9109
|
+
React55.useEffect(() => {
|
|
8215
9110
|
const node = ref.current;
|
|
8216
9111
|
if (node) {
|
|
8217
9112
|
context.branches.add(node);
|
|
@@ -8225,10 +9120,10 @@ var DismissableLayerBranch = React50.forwardRef((props, forwardedRef) => {
|
|
|
8225
9120
|
DismissableLayerBranch.displayName = BRANCH_NAME;
|
|
8226
9121
|
function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
|
|
8227
9122
|
const handlePointerDownOutside = useCallbackRef2(onPointerDownOutside);
|
|
8228
|
-
const isPointerInsideReactTreeRef =
|
|
8229
|
-
const handleClickRef =
|
|
9123
|
+
const isPointerInsideReactTreeRef = React55.useRef(false);
|
|
9124
|
+
const handleClickRef = React55.useRef(() => {
|
|
8230
9125
|
});
|
|
8231
|
-
|
|
9126
|
+
React55.useEffect(() => {
|
|
8232
9127
|
const handlePointerDown = (event) => {
|
|
8233
9128
|
if (event.target && !isPointerInsideReactTreeRef.current) {
|
|
8234
9129
|
let handleAndDispatchPointerDownOutsideEvent2 = function() {
|
|
@@ -8268,8 +9163,8 @@ function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?
|
|
|
8268
9163
|
}
|
|
8269
9164
|
function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {
|
|
8270
9165
|
const handleFocusOutside = useCallbackRef2(onFocusOutside);
|
|
8271
|
-
const isFocusInsideReactTreeRef =
|
|
8272
|
-
|
|
9166
|
+
const isFocusInsideReactTreeRef = React55.useRef(false);
|
|
9167
|
+
React55.useEffect(() => {
|
|
8273
9168
|
const handleFocus = (event) => {
|
|
8274
9169
|
if (event.target && !isFocusInsideReactTreeRef.current) {
|
|
8275
9170
|
const eventDetail = { originalEvent: event };
|
|
@@ -8307,7 +9202,7 @@ var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
|
|
|
8307
9202
|
var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
|
|
8308
9203
|
var EVENT_OPTIONS = { bubbles: false, cancelable: true };
|
|
8309
9204
|
var FOCUS_SCOPE_NAME = "FocusScope";
|
|
8310
|
-
var FocusScope =
|
|
9205
|
+
var FocusScope = React55.forwardRef((props, forwardedRef) => {
|
|
8311
9206
|
const {
|
|
8312
9207
|
loop = false,
|
|
8313
9208
|
trapped = false,
|
|
@@ -8315,12 +9210,12 @@ var FocusScope = React50.forwardRef((props, forwardedRef) => {
|
|
|
8315
9210
|
onUnmountAutoFocus: onUnmountAutoFocusProp,
|
|
8316
9211
|
...scopeProps
|
|
8317
9212
|
} = props;
|
|
8318
|
-
const [container, setContainer] =
|
|
9213
|
+
const [container, setContainer] = React55.useState(null);
|
|
8319
9214
|
const onMountAutoFocus = useCallbackRef2(onMountAutoFocusProp);
|
|
8320
9215
|
const onUnmountAutoFocus = useCallbackRef2(onUnmountAutoFocusProp);
|
|
8321
|
-
const lastFocusedElementRef =
|
|
9216
|
+
const lastFocusedElementRef = React55.useRef(null);
|
|
8322
9217
|
const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));
|
|
8323
|
-
const focusScope =
|
|
9218
|
+
const focusScope = React55.useRef({
|
|
8324
9219
|
paused: false,
|
|
8325
9220
|
pause() {
|
|
8326
9221
|
this.paused = true;
|
|
@@ -8329,7 +9224,7 @@ var FocusScope = React50.forwardRef((props, forwardedRef) => {
|
|
|
8329
9224
|
this.paused = false;
|
|
8330
9225
|
}
|
|
8331
9226
|
}).current;
|
|
8332
|
-
|
|
9227
|
+
React55.useEffect(() => {
|
|
8333
9228
|
if (trapped) {
|
|
8334
9229
|
let handleFocusIn2 = function(event) {
|
|
8335
9230
|
if (focusScope.paused || !container)
|
|
@@ -8370,7 +9265,7 @@ var FocusScope = React50.forwardRef((props, forwardedRef) => {
|
|
|
8370
9265
|
};
|
|
8371
9266
|
}
|
|
8372
9267
|
}, [trapped, container, focusScope.paused]);
|
|
8373
|
-
|
|
9268
|
+
React55.useEffect(() => {
|
|
8374
9269
|
if (container) {
|
|
8375
9270
|
focusScopesStack.add(focusScope);
|
|
8376
9271
|
const previouslyFocusedElement = document.activeElement;
|
|
@@ -8401,7 +9296,7 @@ var FocusScope = React50.forwardRef((props, forwardedRef) => {
|
|
|
8401
9296
|
};
|
|
8402
9297
|
}
|
|
8403
9298
|
}, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
|
|
8404
|
-
const handleKeyDown3 =
|
|
9299
|
+
const handleKeyDown3 = React55.useCallback(
|
|
8405
9300
|
(event) => {
|
|
8406
9301
|
if (!loop && !trapped)
|
|
8407
9302
|
return;
|
|
@@ -8521,16 +9416,16 @@ function removeLinks(items) {
|
|
|
8521
9416
|
return items.filter((item) => item.tagName !== "A");
|
|
8522
9417
|
}
|
|
8523
9418
|
var PORTAL_NAME = "Portal";
|
|
8524
|
-
var Portal =
|
|
9419
|
+
var Portal = React55.forwardRef((props, forwardedRef) => {
|
|
8525
9420
|
const { container: containerProp, ...portalProps } = props;
|
|
8526
|
-
const [mounted, setMounted] =
|
|
9421
|
+
const [mounted, setMounted] = React55.useState(false);
|
|
8527
9422
|
useLayoutEffect22(() => setMounted(true), []);
|
|
8528
9423
|
const container = containerProp || mounted && globalThis?.document?.body;
|
|
8529
9424
|
return container ? ReactDOM__default.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
|
|
8530
9425
|
});
|
|
8531
9426
|
Portal.displayName = PORTAL_NAME;
|
|
8532
9427
|
function useStateMachine(initialState, machine) {
|
|
8533
|
-
return
|
|
9428
|
+
return React55.useReducer((state, event) => {
|
|
8534
9429
|
const nextState = machine[state][event];
|
|
8535
9430
|
return nextState ?? state;
|
|
8536
9431
|
}, initialState);
|
|
@@ -8538,17 +9433,17 @@ function useStateMachine(initialState, machine) {
|
|
|
8538
9433
|
var Presence = (props) => {
|
|
8539
9434
|
const { present, children } = props;
|
|
8540
9435
|
const presence = usePresence(present);
|
|
8541
|
-
const child = typeof children === "function" ? children({ present: presence.isPresent }) :
|
|
9436
|
+
const child = typeof children === "function" ? children({ present: presence.isPresent }) : React55.Children.only(children);
|
|
8542
9437
|
const ref = useComposedRefs(presence.ref, getElementRef2(child));
|
|
8543
9438
|
const forceMount = typeof children === "function";
|
|
8544
|
-
return forceMount || presence.isPresent ?
|
|
9439
|
+
return forceMount || presence.isPresent ? React55.cloneElement(child, { ref }) : null;
|
|
8545
9440
|
};
|
|
8546
9441
|
Presence.displayName = "Presence";
|
|
8547
9442
|
function usePresence(present) {
|
|
8548
|
-
const [node, setNode2] =
|
|
8549
|
-
const stylesRef =
|
|
8550
|
-
const prevPresentRef =
|
|
8551
|
-
const prevAnimationNameRef =
|
|
9443
|
+
const [node, setNode2] = React55.useState();
|
|
9444
|
+
const stylesRef = React55.useRef(null);
|
|
9445
|
+
const prevPresentRef = React55.useRef(present);
|
|
9446
|
+
const prevAnimationNameRef = React55.useRef("none");
|
|
8552
9447
|
const initialState = present ? "mounted" : "unmounted";
|
|
8553
9448
|
const [state, send] = useStateMachine(initialState, {
|
|
8554
9449
|
mounted: {
|
|
@@ -8563,7 +9458,7 @@ function usePresence(present) {
|
|
|
8563
9458
|
MOUNT: "mounted"
|
|
8564
9459
|
}
|
|
8565
9460
|
});
|
|
8566
|
-
|
|
9461
|
+
React55.useEffect(() => {
|
|
8567
9462
|
const currentAnimationName = getAnimationName(stylesRef.current);
|
|
8568
9463
|
prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
|
|
8569
9464
|
}, [state]);
|
|
@@ -8629,7 +9524,7 @@ function usePresence(present) {
|
|
|
8629
9524
|
}, [node, send]);
|
|
8630
9525
|
return {
|
|
8631
9526
|
isPresent: ["mounted", "unmountSuspended"].includes(state),
|
|
8632
|
-
ref:
|
|
9527
|
+
ref: React55.useCallback((node2) => {
|
|
8633
9528
|
stylesRef.current = node2 ? getComputedStyle(node2) : null;
|
|
8634
9529
|
setNode2(node2);
|
|
8635
9530
|
}, [])
|
|
@@ -8653,7 +9548,7 @@ function getElementRef2(element) {
|
|
|
8653
9548
|
}
|
|
8654
9549
|
var count2 = 0;
|
|
8655
9550
|
function useFocusGuards() {
|
|
8656
|
-
|
|
9551
|
+
React55.useEffect(() => {
|
|
8657
9552
|
const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]");
|
|
8658
9553
|
document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
|
|
8659
9554
|
document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
|
|
@@ -8684,9 +9579,9 @@ var effectCar2 = createSidecarMedium();
|
|
|
8684
9579
|
var nothing2 = function() {
|
|
8685
9580
|
return;
|
|
8686
9581
|
};
|
|
8687
|
-
var RemoveScroll2 =
|
|
8688
|
-
var ref =
|
|
8689
|
-
var _a2 =
|
|
9582
|
+
var RemoveScroll2 = React55.forwardRef(function(props, parentRef) {
|
|
9583
|
+
var ref = React55.useRef(null);
|
|
9584
|
+
var _a2 = React55.useState({
|
|
8690
9585
|
onScrollCapture: nothing2,
|
|
8691
9586
|
onWheelCapture: nothing2,
|
|
8692
9587
|
onTouchMoveCapture: nothing2
|
|
@@ -8695,11 +9590,11 @@ var RemoveScroll2 = React50.forwardRef(function(props, parentRef) {
|
|
|
8695
9590
|
var SideCar2 = sideCar;
|
|
8696
9591
|
var containerRef = useMergeRefs([ref, parentRef]);
|
|
8697
9592
|
var containerProps = __assign(__assign({}, rest), callbacks);
|
|
8698
|
-
return
|
|
8699
|
-
|
|
9593
|
+
return React55.createElement(
|
|
9594
|
+
React55.Fragment,
|
|
8700
9595
|
null,
|
|
8701
|
-
enabled &&
|
|
8702
|
-
forwardProps ?
|
|
9596
|
+
enabled && React55.createElement(SideCar2, { sideCar: effectCar2, removeScrollBar, shards, noRelative, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }),
|
|
9597
|
+
forwardProps ? React55.cloneElement(React55.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React55.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children)
|
|
8703
9598
|
);
|
|
8704
9599
|
});
|
|
8705
9600
|
RemoveScroll2.defaultProps = {
|
|
@@ -8850,16 +9745,16 @@ var generateStyle2 = function(id) {
|
|
|
8850
9745
|
var idCounter2 = 0;
|
|
8851
9746
|
var lockStack2 = [];
|
|
8852
9747
|
function RemoveScrollSideCar2(props) {
|
|
8853
|
-
var shouldPreventQueue =
|
|
8854
|
-
var touchStartRef =
|
|
8855
|
-
var activeAxis =
|
|
8856
|
-
var id =
|
|
8857
|
-
var Style2 =
|
|
8858
|
-
var lastProps =
|
|
8859
|
-
|
|
9748
|
+
var shouldPreventQueue = React55.useRef([]);
|
|
9749
|
+
var touchStartRef = React55.useRef([0, 0]);
|
|
9750
|
+
var activeAxis = React55.useRef();
|
|
9751
|
+
var id = React55.useState(idCounter2++)[0];
|
|
9752
|
+
var Style2 = React55.useState(styleSingleton)[0];
|
|
9753
|
+
var lastProps = React55.useRef(props);
|
|
9754
|
+
React55.useEffect(function() {
|
|
8860
9755
|
lastProps.current = props;
|
|
8861
9756
|
}, [props]);
|
|
8862
|
-
|
|
9757
|
+
React55.useEffect(function() {
|
|
8863
9758
|
if (props.inert) {
|
|
8864
9759
|
document.body.classList.add("block-interactivity-".concat(id));
|
|
8865
9760
|
var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef2), true).filter(Boolean);
|
|
@@ -8875,7 +9770,7 @@ function RemoveScrollSideCar2(props) {
|
|
|
8875
9770
|
}
|
|
8876
9771
|
return;
|
|
8877
9772
|
}, [props.inert, props.lockRef.current, props.shards]);
|
|
8878
|
-
var shouldCancelEvent =
|
|
9773
|
+
var shouldCancelEvent = React55.useCallback(function(event, parent) {
|
|
8879
9774
|
if ("touches" in event && event.touches.length === 2 || event.type === "wheel" && event.ctrlKey) {
|
|
8880
9775
|
return !lastProps.current.allowPinchZoom;
|
|
8881
9776
|
}
|
|
@@ -8911,7 +9806,7 @@ function RemoveScrollSideCar2(props) {
|
|
|
8911
9806
|
var cancelingAxis = activeAxis.current || currentAxis;
|
|
8912
9807
|
return handleScroll2(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true);
|
|
8913
9808
|
}, []);
|
|
8914
|
-
var shouldPrevent =
|
|
9809
|
+
var shouldPrevent = React55.useCallback(function(_event) {
|
|
8915
9810
|
var event = _event;
|
|
8916
9811
|
if (!lockStack2.length || lockStack2[lockStack2.length - 1] !== Style2) {
|
|
8917
9812
|
return;
|
|
@@ -8938,7 +9833,7 @@ function RemoveScrollSideCar2(props) {
|
|
|
8938
9833
|
}
|
|
8939
9834
|
}
|
|
8940
9835
|
}, []);
|
|
8941
|
-
var shouldCancel =
|
|
9836
|
+
var shouldCancel = React55.useCallback(function(name, delta, target, should) {
|
|
8942
9837
|
var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) };
|
|
8943
9838
|
shouldPreventQueue.current.push(event);
|
|
8944
9839
|
setTimeout(function() {
|
|
@@ -8947,17 +9842,17 @@ function RemoveScrollSideCar2(props) {
|
|
|
8947
9842
|
});
|
|
8948
9843
|
}, 1);
|
|
8949
9844
|
}, []);
|
|
8950
|
-
var scrollTouchStart =
|
|
9845
|
+
var scrollTouchStart = React55.useCallback(function(event) {
|
|
8951
9846
|
touchStartRef.current = getTouchXY2(event);
|
|
8952
9847
|
activeAxis.current = void 0;
|
|
8953
9848
|
}, []);
|
|
8954
|
-
var scrollWheel =
|
|
9849
|
+
var scrollWheel = React55.useCallback(function(event) {
|
|
8955
9850
|
shouldCancel(event.type, getDeltaXY2(event), event.target, shouldCancelEvent(event, props.lockRef.current));
|
|
8956
9851
|
}, []);
|
|
8957
|
-
var scrollTouchMove =
|
|
9852
|
+
var scrollTouchMove = React55.useCallback(function(event) {
|
|
8958
9853
|
shouldCancel(event.type, getTouchXY2(event), event.target, shouldCancelEvent(event, props.lockRef.current));
|
|
8959
9854
|
}, []);
|
|
8960
|
-
|
|
9855
|
+
React55.useEffect(function() {
|
|
8961
9856
|
lockStack2.push(Style2);
|
|
8962
9857
|
props.setCallbacks({
|
|
8963
9858
|
onScrollCapture: scrollWheel,
|
|
@@ -8977,11 +9872,11 @@ function RemoveScrollSideCar2(props) {
|
|
|
8977
9872
|
};
|
|
8978
9873
|
}, []);
|
|
8979
9874
|
var removeScrollBar = props.removeScrollBar, inert = props.inert;
|
|
8980
|
-
return
|
|
8981
|
-
|
|
9875
|
+
return React55.createElement(
|
|
9876
|
+
React55.Fragment,
|
|
8982
9877
|
null,
|
|
8983
|
-
inert ?
|
|
8984
|
-
removeScrollBar ?
|
|
9878
|
+
inert ? React55.createElement(Style2, { styles: generateStyle2(id) }) : null,
|
|
9879
|
+
removeScrollBar ? React55.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null
|
|
8985
9880
|
);
|
|
8986
9881
|
}
|
|
8987
9882
|
function getOutermostShadowParent(node) {
|
|
@@ -9000,8 +9895,8 @@ function getOutermostShadowParent(node) {
|
|
|
9000
9895
|
var sidecar_default2 = exportSidecar(effectCar2, RemoveScrollSideCar2);
|
|
9001
9896
|
|
|
9002
9897
|
// node_modules/react-remove-scroll/dist/es2015/Combination.js
|
|
9003
|
-
var ReactRemoveScroll2 =
|
|
9004
|
-
return
|
|
9898
|
+
var ReactRemoveScroll2 = React55.forwardRef(function(props, ref) {
|
|
9899
|
+
return React55.createElement(RemoveScroll2, __assign({}, props, { ref, sideCar: sidecar_default2 }));
|
|
9005
9900
|
});
|
|
9006
9901
|
ReactRemoveScroll2.classNames = RemoveScroll2.classNames;
|
|
9007
9902
|
var Combination_default2 = ReactRemoveScroll2;
|
|
@@ -9017,8 +9912,8 @@ var Dialog = (props) => {
|
|
|
9017
9912
|
onOpenChange,
|
|
9018
9913
|
modal = true
|
|
9019
9914
|
} = props;
|
|
9020
|
-
const triggerRef =
|
|
9021
|
-
const contentRef =
|
|
9915
|
+
const triggerRef = React55.useRef(null);
|
|
9916
|
+
const contentRef = React55.useRef(null);
|
|
9022
9917
|
const [open, setOpen] = useControllableState({
|
|
9023
9918
|
prop: openProp,
|
|
9024
9919
|
defaultProp: defaultOpen ?? false,
|
|
@@ -9036,7 +9931,7 @@ var Dialog = (props) => {
|
|
|
9036
9931
|
descriptionId: useId(),
|
|
9037
9932
|
open,
|
|
9038
9933
|
onOpenChange: setOpen,
|
|
9039
|
-
onOpenToggle:
|
|
9934
|
+
onOpenToggle: React55.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
|
|
9040
9935
|
modal,
|
|
9041
9936
|
children
|
|
9042
9937
|
}
|
|
@@ -9044,7 +9939,7 @@ var Dialog = (props) => {
|
|
|
9044
9939
|
};
|
|
9045
9940
|
Dialog.displayName = DIALOG_NAME;
|
|
9046
9941
|
var TRIGGER_NAME = "DialogTrigger";
|
|
9047
|
-
var DialogTrigger =
|
|
9942
|
+
var DialogTrigger = React55.forwardRef(
|
|
9048
9943
|
(props, forwardedRef) => {
|
|
9049
9944
|
const { __scopeDialog, ...triggerProps } = props;
|
|
9050
9945
|
const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
|
|
@@ -9072,11 +9967,11 @@ var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME2, {
|
|
|
9072
9967
|
var DialogPortal = (props) => {
|
|
9073
9968
|
const { __scopeDialog, forceMount, children, container } = props;
|
|
9074
9969
|
const context = useDialogContext(PORTAL_NAME2, __scopeDialog);
|
|
9075
|
-
return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children:
|
|
9970
|
+
return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React55.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal, { asChild: true, container, children: child }) })) });
|
|
9076
9971
|
};
|
|
9077
9972
|
DialogPortal.displayName = PORTAL_NAME2;
|
|
9078
9973
|
var OVERLAY_NAME = "DialogOverlay";
|
|
9079
|
-
var DialogOverlay =
|
|
9974
|
+
var DialogOverlay = React55.forwardRef(
|
|
9080
9975
|
(props, forwardedRef) => {
|
|
9081
9976
|
const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
|
|
9082
9977
|
const { forceMount = portalContext.forceMount, ...overlayProps } = props;
|
|
@@ -9086,7 +9981,7 @@ var DialogOverlay = React50.forwardRef(
|
|
|
9086
9981
|
);
|
|
9087
9982
|
DialogOverlay.displayName = OVERLAY_NAME;
|
|
9088
9983
|
var Slot = createSlot("DialogOverlay.RemoveScroll");
|
|
9089
|
-
var DialogOverlayImpl =
|
|
9984
|
+
var DialogOverlayImpl = React55.forwardRef(
|
|
9090
9985
|
(props, forwardedRef) => {
|
|
9091
9986
|
const { __scopeDialog, ...overlayProps } = props;
|
|
9092
9987
|
const context = useDialogContext(OVERLAY_NAME, __scopeDialog);
|
|
@@ -9106,7 +10001,7 @@ var DialogOverlayImpl = React50.forwardRef(
|
|
|
9106
10001
|
}
|
|
9107
10002
|
);
|
|
9108
10003
|
var CONTENT_NAME = "DialogContent";
|
|
9109
|
-
var DialogContent =
|
|
10004
|
+
var DialogContent = React55.forwardRef(
|
|
9110
10005
|
(props, forwardedRef) => {
|
|
9111
10006
|
const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
|
|
9112
10007
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
@@ -9115,12 +10010,12 @@ var DialogContent = React50.forwardRef(
|
|
|
9115
10010
|
}
|
|
9116
10011
|
);
|
|
9117
10012
|
DialogContent.displayName = CONTENT_NAME;
|
|
9118
|
-
var DialogContentModal =
|
|
10013
|
+
var DialogContentModal = React55.forwardRef(
|
|
9119
10014
|
(props, forwardedRef) => {
|
|
9120
10015
|
const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
|
|
9121
|
-
const contentRef =
|
|
10016
|
+
const contentRef = React55.useRef(null);
|
|
9122
10017
|
const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
|
|
9123
|
-
|
|
10018
|
+
React55.useEffect(() => {
|
|
9124
10019
|
const content = contentRef.current;
|
|
9125
10020
|
if (content)
|
|
9126
10021
|
return hideOthers(content);
|
|
@@ -9151,11 +10046,11 @@ var DialogContentModal = React50.forwardRef(
|
|
|
9151
10046
|
);
|
|
9152
10047
|
}
|
|
9153
10048
|
);
|
|
9154
|
-
var DialogContentNonModal =
|
|
10049
|
+
var DialogContentNonModal = React55.forwardRef(
|
|
9155
10050
|
(props, forwardedRef) => {
|
|
9156
10051
|
const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
|
|
9157
|
-
const hasInteractedOutsideRef =
|
|
9158
|
-
const hasPointerDownOutsideRef =
|
|
10052
|
+
const hasInteractedOutsideRef = React55.useRef(false);
|
|
10053
|
+
const hasPointerDownOutsideRef = React55.useRef(false);
|
|
9159
10054
|
return /* @__PURE__ */ jsx(
|
|
9160
10055
|
DialogContentImpl,
|
|
9161
10056
|
{
|
|
@@ -9193,11 +10088,11 @@ var DialogContentNonModal = React50.forwardRef(
|
|
|
9193
10088
|
);
|
|
9194
10089
|
}
|
|
9195
10090
|
);
|
|
9196
|
-
var DialogContentImpl =
|
|
10091
|
+
var DialogContentImpl = React55.forwardRef(
|
|
9197
10092
|
(props, forwardedRef) => {
|
|
9198
10093
|
const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;
|
|
9199
10094
|
const context = useDialogContext(CONTENT_NAME, __scopeDialog);
|
|
9200
|
-
const contentRef =
|
|
10095
|
+
const contentRef = React55.useRef(null);
|
|
9201
10096
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
9202
10097
|
useFocusGuards();
|
|
9203
10098
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -9232,7 +10127,7 @@ var DialogContentImpl = React50.forwardRef(
|
|
|
9232
10127
|
}
|
|
9233
10128
|
);
|
|
9234
10129
|
var TITLE_NAME = "DialogTitle";
|
|
9235
|
-
var DialogTitle =
|
|
10130
|
+
var DialogTitle = React55.forwardRef(
|
|
9236
10131
|
(props, forwardedRef) => {
|
|
9237
10132
|
const { __scopeDialog, ...titleProps } = props;
|
|
9238
10133
|
const context = useDialogContext(TITLE_NAME, __scopeDialog);
|
|
@@ -9241,7 +10136,7 @@ var DialogTitle = React50.forwardRef(
|
|
|
9241
10136
|
);
|
|
9242
10137
|
DialogTitle.displayName = TITLE_NAME;
|
|
9243
10138
|
var DESCRIPTION_NAME = "DialogDescription";
|
|
9244
|
-
var DialogDescription =
|
|
10139
|
+
var DialogDescription = React55.forwardRef(
|
|
9245
10140
|
(props, forwardedRef) => {
|
|
9246
10141
|
const { __scopeDialog, ...descriptionProps } = props;
|
|
9247
10142
|
const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
|
|
@@ -9250,7 +10145,7 @@ var DialogDescription = React50.forwardRef(
|
|
|
9250
10145
|
);
|
|
9251
10146
|
DialogDescription.displayName = DESCRIPTION_NAME;
|
|
9252
10147
|
var CLOSE_NAME = "DialogClose";
|
|
9253
|
-
var DialogClose =
|
|
10148
|
+
var DialogClose = React55.forwardRef(
|
|
9254
10149
|
(props, forwardedRef) => {
|
|
9255
10150
|
const { __scopeDialog, ...closeProps } = props;
|
|
9256
10151
|
const context = useDialogContext(CLOSE_NAME, __scopeDialog);
|
|
@@ -9282,7 +10177,7 @@ var TitleWarning = ({ titleId }) => {
|
|
|
9282
10177
|
If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
9283
10178
|
|
|
9284
10179
|
For more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;
|
|
9285
|
-
|
|
10180
|
+
React55.useEffect(() => {
|
|
9286
10181
|
if (titleId) {
|
|
9287
10182
|
const hasTitle = document.getElementById(titleId);
|
|
9288
10183
|
if (!hasTitle)
|
|
@@ -9295,7 +10190,7 @@ var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning";
|
|
|
9295
10190
|
var DescriptionWarning = ({ contentRef, descriptionId }) => {
|
|
9296
10191
|
const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);
|
|
9297
10192
|
const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${descriptionWarningContext.contentName}}.`;
|
|
9298
|
-
|
|
10193
|
+
React55.useEffect(() => {
|
|
9299
10194
|
const describedById = contentRef.current?.getAttribute("aria-describedby");
|
|
9300
10195
|
if (descriptionId && describedById) {
|
|
9301
10196
|
const hasDescription = document.getElementById(descriptionId);
|
|
@@ -9338,7 +10233,7 @@ var overlayVariants = cva(
|
|
|
9338
10233
|
}
|
|
9339
10234
|
}
|
|
9340
10235
|
);
|
|
9341
|
-
var DialogOverlay2 =
|
|
10236
|
+
var DialogOverlay2 = React55.forwardRef(({ className, variant, animation, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9342
10237
|
Overlay,
|
|
9343
10238
|
{
|
|
9344
10239
|
ref,
|
|
@@ -9397,7 +10292,7 @@ var dialogContentVariants = cva(
|
|
|
9397
10292
|
}
|
|
9398
10293
|
}
|
|
9399
10294
|
);
|
|
9400
|
-
var DialogContent2 =
|
|
10295
|
+
var DialogContent2 = React55.forwardRef(
|
|
9401
10296
|
({
|
|
9402
10297
|
className,
|
|
9403
10298
|
children,
|
|
@@ -9510,7 +10405,7 @@ var DialogFooter = ({
|
|
|
9510
10405
|
}
|
|
9511
10406
|
);
|
|
9512
10407
|
DialogFooter.displayName = "DialogFooter";
|
|
9513
|
-
var DialogTitle2 =
|
|
10408
|
+
var DialogTitle2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9514
10409
|
Title,
|
|
9515
10410
|
{
|
|
9516
10411
|
ref,
|
|
@@ -9522,7 +10417,7 @@ var DialogTitle2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
9522
10417
|
}
|
|
9523
10418
|
));
|
|
9524
10419
|
DialogTitle2.displayName = Title.displayName;
|
|
9525
|
-
var DialogDescription2 =
|
|
10420
|
+
var DialogDescription2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9526
10421
|
Description,
|
|
9527
10422
|
{
|
|
9528
10423
|
ref,
|
|
@@ -9534,7 +10429,7 @@ var DialogDescription2 = React50.forwardRef(({ className, ...props }, ref) => /*
|
|
|
9534
10429
|
}
|
|
9535
10430
|
));
|
|
9536
10431
|
DialogDescription2.displayName = Description.displayName;
|
|
9537
|
-
var DialogForm =
|
|
10432
|
+
var DialogForm = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9538
10433
|
"form",
|
|
9539
10434
|
{
|
|
9540
10435
|
ref,
|
|
@@ -9561,7 +10456,7 @@ var defaultColors = [
|
|
|
9561
10456
|
"#EC4899",
|
|
9562
10457
|
"#F43F5E"
|
|
9563
10458
|
];
|
|
9564
|
-
var ColorPicker =
|
|
10459
|
+
var ColorPicker = React55__default.forwardRef(
|
|
9565
10460
|
({
|
|
9566
10461
|
value = "#000000",
|
|
9567
10462
|
onChange,
|
|
@@ -9968,14 +10863,14 @@ function Calendar2({
|
|
|
9968
10863
|
] })
|
|
9969
10864
|
] }) }) });
|
|
9970
10865
|
}
|
|
9971
|
-
const [currentDate, setCurrentDate] =
|
|
9972
|
-
const [selectedDate, setSelectedDate] =
|
|
9973
|
-
|
|
9974
|
-
const [eventDialogOpen, setEventDialogOpen] =
|
|
9975
|
-
const [eventDialogMode, setEventDialogMode] =
|
|
9976
|
-
const [selectedEvent, setSelectedEvent] =
|
|
9977
|
-
const [draggedEvent, setDraggedEvent] =
|
|
9978
|
-
const [dragTargetDate, setDragTargetDate] =
|
|
10866
|
+
const [currentDate, setCurrentDate] = React55__default.useState(/* @__PURE__ */ new Date());
|
|
10867
|
+
const [selectedDate, setSelectedDate] = React55__default.useState(null);
|
|
10868
|
+
React55__default.useState("month");
|
|
10869
|
+
const [eventDialogOpen, setEventDialogOpen] = React55__default.useState(false);
|
|
10870
|
+
const [eventDialogMode, setEventDialogMode] = React55__default.useState("create");
|
|
10871
|
+
const [selectedEvent, setSelectedEvent] = React55__default.useState(null);
|
|
10872
|
+
const [draggedEvent, setDraggedEvent] = React55__default.useState(null);
|
|
10873
|
+
const [dragTargetDate, setDragTargetDate] = React55__default.useState(null);
|
|
9979
10874
|
const today = /* @__PURE__ */ new Date();
|
|
9980
10875
|
const currentMonth = currentDate.getMonth();
|
|
9981
10876
|
const currentYear = currentDate.getFullYear();
|
|
@@ -10366,7 +11261,7 @@ var avatarVariants = cva(
|
|
|
10366
11261
|
}
|
|
10367
11262
|
}
|
|
10368
11263
|
);
|
|
10369
|
-
var Avatar =
|
|
11264
|
+
var Avatar = React55.forwardRef(({ className, size: size4, radius, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
10370
11265
|
AvatarPrimitive.Root,
|
|
10371
11266
|
{
|
|
10372
11267
|
ref,
|
|
@@ -10375,7 +11270,7 @@ var Avatar = React50.forwardRef(({ className, size: size4, radius, variant, ...p
|
|
|
10375
11270
|
}
|
|
10376
11271
|
));
|
|
10377
11272
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
10378
|
-
var AvatarImage =
|
|
11273
|
+
var AvatarImage = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
10379
11274
|
AvatarPrimitive.Image,
|
|
10380
11275
|
{
|
|
10381
11276
|
ref,
|
|
@@ -10384,7 +11279,7 @@ var AvatarImage = React50.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
10384
11279
|
}
|
|
10385
11280
|
));
|
|
10386
11281
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
10387
|
-
var AvatarFallback =
|
|
11282
|
+
var AvatarFallback = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
10388
11283
|
AvatarPrimitive.Fallback,
|
|
10389
11284
|
{
|
|
10390
11285
|
ref,
|
|
@@ -10396,7 +11291,7 @@ var AvatarFallback = React50.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
10396
11291
|
}
|
|
10397
11292
|
));
|
|
10398
11293
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
10399
|
-
var AvatarGroup =
|
|
11294
|
+
var AvatarGroup = React55.forwardRef(
|
|
10400
11295
|
({ className, limit, avatars, overlapOffset = -8, ...props }, ref) => {
|
|
10401
11296
|
const visibleAvatars = limit ? avatars.slice(0, limit) : avatars;
|
|
10402
11297
|
const remainingCount = limit ? Math.max(0, avatars.length - limit) : 0;
|
|
@@ -10470,9 +11365,9 @@ function Kanban({
|
|
|
10470
11365
|
] })
|
|
10471
11366
|
] }) }) });
|
|
10472
11367
|
}
|
|
10473
|
-
const [draggedCard, setDraggedCard] =
|
|
10474
|
-
const [draggedOverColumn, setDraggedOverColumn] =
|
|
10475
|
-
const [draggedFromColumn, setDraggedFromColumn] =
|
|
11368
|
+
const [draggedCard, setDraggedCard] = React55__default.useState(null);
|
|
11369
|
+
const [draggedOverColumn, setDraggedOverColumn] = React55__default.useState(null);
|
|
11370
|
+
const [draggedFromColumn, setDraggedFromColumn] = React55__default.useState(null);
|
|
10476
11371
|
const handleDragStart = (e, cardId) => {
|
|
10477
11372
|
if (disabled)
|
|
10478
11373
|
return;
|
|
@@ -27194,7 +28089,7 @@ function markPasteRule(config) {
|
|
|
27194
28089
|
}
|
|
27195
28090
|
|
|
27196
28091
|
// ../../node_modules/@tiptap/react/dist/index.js
|
|
27197
|
-
var
|
|
28092
|
+
var import_react40 = __toESM(require_react(), 1);
|
|
27198
28093
|
var mergeRefs = (...refs) => {
|
|
27199
28094
|
return (node) => {
|
|
27200
28095
|
refs.forEach((ref) => {
|
|
@@ -27254,11 +28149,11 @@ function getInstance() {
|
|
|
27254
28149
|
}
|
|
27255
28150
|
};
|
|
27256
28151
|
}
|
|
27257
|
-
var PureEditorContent = class extends
|
|
28152
|
+
var PureEditorContent = class extends React55__default.Component {
|
|
27258
28153
|
constructor(props) {
|
|
27259
28154
|
var _a2;
|
|
27260
28155
|
super(props);
|
|
27261
|
-
this.editorContentRef =
|
|
28156
|
+
this.editorContentRef = React55__default.createRef();
|
|
27262
28157
|
this.initialized = false;
|
|
27263
28158
|
this.state = {
|
|
27264
28159
|
hasContentComponentInitialized: Boolean((_a2 = props.editor) == null ? void 0 : _a2.contentComponent)
|
|
@@ -27336,17 +28231,17 @@ var PureEditorContent = class extends React50__default.Component {
|
|
|
27336
28231
|
};
|
|
27337
28232
|
var EditorContentWithKey = forwardRef(
|
|
27338
28233
|
(props, ref) => {
|
|
27339
|
-
const key =
|
|
28234
|
+
const key = React55__default.useMemo(() => {
|
|
27340
28235
|
return Math.floor(Math.random() * 4294967295).toString();
|
|
27341
28236
|
}, [props.editor]);
|
|
27342
|
-
return
|
|
28237
|
+
return React55__default.createElement(PureEditorContent, {
|
|
27343
28238
|
key,
|
|
27344
28239
|
innerRef: ref,
|
|
27345
28240
|
...props
|
|
27346
28241
|
});
|
|
27347
28242
|
}
|
|
27348
28243
|
);
|
|
27349
|
-
var EditorContent =
|
|
28244
|
+
var EditorContent = React55__default.memo(EditorContentWithKey);
|
|
27350
28245
|
var useIsomorphicLayoutEffect2 = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
27351
28246
|
var EditorStateManager = class {
|
|
27352
28247
|
constructor(initialEditor) {
|
|
@@ -27413,7 +28308,7 @@ function useEditorState(options) {
|
|
|
27413
28308
|
editorStateManager.getSnapshot,
|
|
27414
28309
|
editorStateManager.getServerSnapshot,
|
|
27415
28310
|
options.selector,
|
|
27416
|
-
(_a2 = options.equalityFn) != null ? _a2 :
|
|
28311
|
+
(_a2 = options.equalityFn) != null ? _a2 : import_react40.default
|
|
27417
28312
|
);
|
|
27418
28313
|
useIsomorphicLayoutEffect2(() => {
|
|
27419
28314
|
return editorStateManager.watch(options.editor);
|
|
@@ -27690,7 +28585,7 @@ var ReactNodeViewContext = createContext({
|
|
|
27690
28585
|
}
|
|
27691
28586
|
});
|
|
27692
28587
|
var useReactNodeView = () => useContext(ReactNodeViewContext);
|
|
27693
|
-
|
|
28588
|
+
React55__default.forwardRef((props, ref) => {
|
|
27694
28589
|
const { onDragStart } = useReactNodeView();
|
|
27695
28590
|
const Tag = props.as || "div";
|
|
27696
28591
|
return (
|
|
@@ -27710,7 +28605,7 @@ React50__default.forwardRef((props, ref) => {
|
|
|
27710
28605
|
)
|
|
27711
28606
|
);
|
|
27712
28607
|
});
|
|
27713
|
-
|
|
28608
|
+
React55__default.createContext({
|
|
27714
28609
|
markViewContentRef: () => {
|
|
27715
28610
|
}
|
|
27716
28611
|
});
|
|
@@ -49244,14 +50139,14 @@ function createCollection(name) {
|
|
|
49244
50139
|
);
|
|
49245
50140
|
const CollectionProvider = (props) => {
|
|
49246
50141
|
const { scope, children } = props;
|
|
49247
|
-
const ref =
|
|
49248
|
-
const itemMap =
|
|
50142
|
+
const ref = React55__default.useRef(null);
|
|
50143
|
+
const itemMap = React55__default.useRef(/* @__PURE__ */ new Map()).current;
|
|
49249
50144
|
return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
|
|
49250
50145
|
};
|
|
49251
50146
|
CollectionProvider.displayName = PROVIDER_NAME2;
|
|
49252
50147
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
49253
50148
|
const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);
|
|
49254
|
-
const CollectionSlot =
|
|
50149
|
+
const CollectionSlot = React55__default.forwardRef(
|
|
49255
50150
|
(props, forwardedRef) => {
|
|
49256
50151
|
const { scope, children } = props;
|
|
49257
50152
|
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
@@ -49263,13 +50158,13 @@ function createCollection(name) {
|
|
|
49263
50158
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
49264
50159
|
const ITEM_DATA_ATTR = "data-radix-collection-item";
|
|
49265
50160
|
const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);
|
|
49266
|
-
const CollectionItemSlot =
|
|
50161
|
+
const CollectionItemSlot = React55__default.forwardRef(
|
|
49267
50162
|
(props, forwardedRef) => {
|
|
49268
50163
|
const { scope, children, ...itemData } = props;
|
|
49269
|
-
const ref =
|
|
50164
|
+
const ref = React55__default.useRef(null);
|
|
49270
50165
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
49271
50166
|
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
49272
|
-
|
|
50167
|
+
React55__default.useEffect(() => {
|
|
49273
50168
|
context.itemMap.set(ref, { ref, ...itemData });
|
|
49274
50169
|
return () => void context.itemMap.delete(ref);
|
|
49275
50170
|
});
|
|
@@ -49279,7 +50174,7 @@ function createCollection(name) {
|
|
|
49279
50174
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
49280
50175
|
function useCollection4(scope) {
|
|
49281
50176
|
const context = useCollectionContext(name + "CollectionConsumer", scope);
|
|
49282
|
-
const getItems =
|
|
50177
|
+
const getItems = React55__default.useCallback(() => {
|
|
49283
50178
|
const collectionNode = context.collectionRef.current;
|
|
49284
50179
|
if (!collectionNode)
|
|
49285
50180
|
return [];
|
|
@@ -49298,13 +50193,13 @@ function createCollection(name) {
|
|
|
49298
50193
|
createCollectionScope4
|
|
49299
50194
|
];
|
|
49300
50195
|
}
|
|
49301
|
-
var DirectionContext =
|
|
50196
|
+
var DirectionContext = React55.createContext(void 0);
|
|
49302
50197
|
function useDirection(localDir) {
|
|
49303
|
-
const globalDir =
|
|
50198
|
+
const globalDir = React55.useContext(DirectionContext);
|
|
49304
50199
|
return localDir || globalDir || "ltr";
|
|
49305
50200
|
}
|
|
49306
50201
|
var NAME2 = "Arrow";
|
|
49307
|
-
var Arrow =
|
|
50202
|
+
var Arrow = React55.forwardRef((props, forwardedRef) => {
|
|
49308
50203
|
const { children, width = 10, height = 5, ...arrowProps } = props;
|
|
49309
50204
|
return /* @__PURE__ */ jsx(
|
|
49310
50205
|
Primitive.svg,
|
|
@@ -49322,7 +50217,7 @@ var Arrow = React50.forwardRef((props, forwardedRef) => {
|
|
|
49322
50217
|
Arrow.displayName = NAME2;
|
|
49323
50218
|
var Root5 = Arrow;
|
|
49324
50219
|
function useSize(element) {
|
|
49325
|
-
const [size4, setSize] =
|
|
50220
|
+
const [size4, setSize] = React55.useState(void 0);
|
|
49326
50221
|
useLayoutEffect22(() => {
|
|
49327
50222
|
if (element) {
|
|
49328
50223
|
setSize({ width: element.offsetWidth, height: element.offsetHeight });
|
|
@@ -49360,18 +50255,18 @@ var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
|
|
|
49360
50255
|
var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
|
|
49361
50256
|
var Popper = (props) => {
|
|
49362
50257
|
const { __scopePopper, children } = props;
|
|
49363
|
-
const [anchor, setAnchor] =
|
|
50258
|
+
const [anchor, setAnchor] = React55.useState(null);
|
|
49364
50259
|
return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
|
|
49365
50260
|
};
|
|
49366
50261
|
Popper.displayName = POPPER_NAME;
|
|
49367
50262
|
var ANCHOR_NAME = "PopperAnchor";
|
|
49368
|
-
var PopperAnchor =
|
|
50263
|
+
var PopperAnchor = React55.forwardRef(
|
|
49369
50264
|
(props, forwardedRef) => {
|
|
49370
50265
|
const { __scopePopper, virtualRef, ...anchorProps } = props;
|
|
49371
50266
|
const context = usePopperContext(ANCHOR_NAME, __scopePopper);
|
|
49372
|
-
const ref =
|
|
50267
|
+
const ref = React55.useRef(null);
|
|
49373
50268
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
49374
|
-
|
|
50269
|
+
React55.useEffect(() => {
|
|
49375
50270
|
context.onAnchorChange(virtualRef?.current || ref.current);
|
|
49376
50271
|
});
|
|
49377
50272
|
return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });
|
|
@@ -49380,7 +50275,7 @@ var PopperAnchor = React50.forwardRef(
|
|
|
49380
50275
|
PopperAnchor.displayName = ANCHOR_NAME;
|
|
49381
50276
|
var CONTENT_NAME2 = "PopperContent";
|
|
49382
50277
|
var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME2);
|
|
49383
|
-
var PopperContent =
|
|
50278
|
+
var PopperContent = React55.forwardRef(
|
|
49384
50279
|
(props, forwardedRef) => {
|
|
49385
50280
|
const {
|
|
49386
50281
|
__scopePopper,
|
|
@@ -49399,9 +50294,9 @@ var PopperContent = React50.forwardRef(
|
|
|
49399
50294
|
...contentProps
|
|
49400
50295
|
} = props;
|
|
49401
50296
|
const context = usePopperContext(CONTENT_NAME2, __scopePopper);
|
|
49402
|
-
const [content, setContent2] =
|
|
50297
|
+
const [content, setContent2] = React55.useState(null);
|
|
49403
50298
|
const composedRefs = useComposedRefs(forwardedRef, (node) => setContent2(node));
|
|
49404
|
-
const [arrow6, setArrow] =
|
|
50299
|
+
const [arrow6, setArrow] = React55.useState(null);
|
|
49405
50300
|
const arrowSize = useSize(arrow6);
|
|
49406
50301
|
const arrowWidth = arrowSize?.width ?? 0;
|
|
49407
50302
|
const arrowHeight = arrowSize?.height ?? 0;
|
|
@@ -49463,7 +50358,7 @@ var PopperContent = React50.forwardRef(
|
|
|
49463
50358
|
const arrowX = middlewareData.arrow?.x;
|
|
49464
50359
|
const arrowY = middlewareData.arrow?.y;
|
|
49465
50360
|
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
|
49466
|
-
const [contentZIndex, setContentZIndex] =
|
|
50361
|
+
const [contentZIndex, setContentZIndex] = React55.useState();
|
|
49467
50362
|
useLayoutEffect22(() => {
|
|
49468
50363
|
if (content)
|
|
49469
50364
|
setContentZIndex(window.getComputedStyle(content).zIndex);
|
|
@@ -49530,7 +50425,7 @@ var OPPOSITE_SIDE = {
|
|
|
49530
50425
|
bottom: "top",
|
|
49531
50426
|
left: "right"
|
|
49532
50427
|
};
|
|
49533
|
-
var PopperArrow =
|
|
50428
|
+
var PopperArrow = React55.forwardRef(function PopperArrow2(props, forwardedRef) {
|
|
49534
50429
|
const { __scopePopper, ...arrowProps } = props;
|
|
49535
50430
|
const contentContext = useContentContext(ARROW_NAME, __scopePopper);
|
|
49536
50431
|
const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
|
|
@@ -49629,13 +50524,13 @@ var [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContext
|
|
|
49629
50524
|
[createCollectionScope]
|
|
49630
50525
|
);
|
|
49631
50526
|
var [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);
|
|
49632
|
-
var RovingFocusGroup =
|
|
50527
|
+
var RovingFocusGroup = React55.forwardRef(
|
|
49633
50528
|
(props, forwardedRef) => {
|
|
49634
50529
|
return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });
|
|
49635
50530
|
}
|
|
49636
50531
|
);
|
|
49637
50532
|
RovingFocusGroup.displayName = GROUP_NAME;
|
|
49638
|
-
var RovingFocusGroupImpl =
|
|
50533
|
+
var RovingFocusGroupImpl = React55.forwardRef((props, forwardedRef) => {
|
|
49639
50534
|
const {
|
|
49640
50535
|
__scopeRovingFocusGroup,
|
|
49641
50536
|
orientation,
|
|
@@ -49648,7 +50543,7 @@ var RovingFocusGroupImpl = React50.forwardRef((props, forwardedRef) => {
|
|
|
49648
50543
|
preventScrollOnEntryFocus = false,
|
|
49649
50544
|
...groupProps
|
|
49650
50545
|
} = props;
|
|
49651
|
-
const ref =
|
|
50546
|
+
const ref = React55.useRef(null);
|
|
49652
50547
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
49653
50548
|
const direction = useDirection(dir);
|
|
49654
50549
|
const [currentTabStopId, setCurrentTabStopId] = useControllableState({
|
|
@@ -49657,12 +50552,12 @@ var RovingFocusGroupImpl = React50.forwardRef((props, forwardedRef) => {
|
|
|
49657
50552
|
onChange: onCurrentTabStopIdChange,
|
|
49658
50553
|
caller: GROUP_NAME
|
|
49659
50554
|
});
|
|
49660
|
-
const [isTabbingBackOut, setIsTabbingBackOut] =
|
|
50555
|
+
const [isTabbingBackOut, setIsTabbingBackOut] = React55.useState(false);
|
|
49661
50556
|
const handleEntryFocus = useCallbackRef2(onEntryFocus);
|
|
49662
50557
|
const getItems = useCollection(__scopeRovingFocusGroup);
|
|
49663
|
-
const isClickFocusRef =
|
|
49664
|
-
const [focusableItemsCount, setFocusableItemsCount] =
|
|
49665
|
-
|
|
50558
|
+
const isClickFocusRef = React55.useRef(false);
|
|
50559
|
+
const [focusableItemsCount, setFocusableItemsCount] = React55.useState(0);
|
|
50560
|
+
React55.useEffect(() => {
|
|
49666
50561
|
const node = ref.current;
|
|
49667
50562
|
if (node) {
|
|
49668
50563
|
node.addEventListener(ENTRY_FOCUS, handleEntryFocus);
|
|
@@ -49677,16 +50572,16 @@ var RovingFocusGroupImpl = React50.forwardRef((props, forwardedRef) => {
|
|
|
49677
50572
|
dir: direction,
|
|
49678
50573
|
loop,
|
|
49679
50574
|
currentTabStopId,
|
|
49680
|
-
onItemFocus:
|
|
50575
|
+
onItemFocus: React55.useCallback(
|
|
49681
50576
|
(tabStopId) => setCurrentTabStopId(tabStopId),
|
|
49682
50577
|
[setCurrentTabStopId]
|
|
49683
50578
|
),
|
|
49684
|
-
onItemShiftTab:
|
|
49685
|
-
onFocusableItemAdd:
|
|
50579
|
+
onItemShiftTab: React55.useCallback(() => setIsTabbingBackOut(true), []),
|
|
50580
|
+
onFocusableItemAdd: React55.useCallback(
|
|
49686
50581
|
() => setFocusableItemsCount((prevCount) => prevCount + 1),
|
|
49687
50582
|
[]
|
|
49688
50583
|
),
|
|
49689
|
-
onFocusableItemRemove:
|
|
50584
|
+
onFocusableItemRemove: React55.useCallback(
|
|
49690
50585
|
() => setFocusableItemsCount((prevCount) => prevCount - 1),
|
|
49691
50586
|
[]
|
|
49692
50587
|
),
|
|
@@ -49726,7 +50621,7 @@ var RovingFocusGroupImpl = React50.forwardRef((props, forwardedRef) => {
|
|
|
49726
50621
|
);
|
|
49727
50622
|
});
|
|
49728
50623
|
var ITEM_NAME = "RovingFocusGroupItem";
|
|
49729
|
-
var RovingFocusGroupItem =
|
|
50624
|
+
var RovingFocusGroupItem = React55.forwardRef(
|
|
49730
50625
|
(props, forwardedRef) => {
|
|
49731
50626
|
const {
|
|
49732
50627
|
__scopeRovingFocusGroup,
|
|
@@ -49742,7 +50637,7 @@ var RovingFocusGroupItem = React50.forwardRef(
|
|
|
49742
50637
|
const isCurrentTabStop = context.currentTabStopId === id;
|
|
49743
50638
|
const getItems = useCollection(__scopeRovingFocusGroup);
|
|
49744
50639
|
const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;
|
|
49745
|
-
|
|
50640
|
+
React55.useEffect(() => {
|
|
49746
50641
|
if (focusable) {
|
|
49747
50642
|
onFocusableItemAdd();
|
|
49748
50643
|
return () => onFocusableItemRemove();
|
|
@@ -49866,11 +50761,11 @@ var [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);
|
|
|
49866
50761
|
var Menu = (props) => {
|
|
49867
50762
|
const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;
|
|
49868
50763
|
const popperScope = usePopperScope(__scopeMenu);
|
|
49869
|
-
const [content, setContent2] =
|
|
49870
|
-
const isUsingKeyboardRef =
|
|
50764
|
+
const [content, setContent2] = React55.useState(null);
|
|
50765
|
+
const isUsingKeyboardRef = React55.useRef(false);
|
|
49871
50766
|
const handleOpenChange = useCallbackRef2(onOpenChange);
|
|
49872
50767
|
const direction = useDirection(dir);
|
|
49873
|
-
|
|
50768
|
+
React55.useEffect(() => {
|
|
49874
50769
|
const handleKeyDown3 = () => {
|
|
49875
50770
|
isUsingKeyboardRef.current = true;
|
|
49876
50771
|
document.addEventListener("pointerdown", handlePointer, { capture: true, once: true });
|
|
@@ -49896,7 +50791,7 @@ var Menu = (props) => {
|
|
|
49896
50791
|
MenuRootProvider,
|
|
49897
50792
|
{
|
|
49898
50793
|
scope: __scopeMenu,
|
|
49899
|
-
onClose:
|
|
50794
|
+
onClose: React55.useCallback(() => handleOpenChange(false), [handleOpenChange]),
|
|
49900
50795
|
isUsingKeyboardRef,
|
|
49901
50796
|
dir: direction,
|
|
49902
50797
|
modal,
|
|
@@ -49908,7 +50803,7 @@ var Menu = (props) => {
|
|
|
49908
50803
|
};
|
|
49909
50804
|
Menu.displayName = MENU_NAME;
|
|
49910
50805
|
var ANCHOR_NAME2 = "MenuAnchor";
|
|
49911
|
-
var MenuAnchor =
|
|
50806
|
+
var MenuAnchor = React55.forwardRef(
|
|
49912
50807
|
(props, forwardedRef) => {
|
|
49913
50808
|
const { __scopeMenu, ...anchorProps } = props;
|
|
49914
50809
|
const popperScope = usePopperScope(__scopeMenu);
|
|
@@ -49928,7 +50823,7 @@ var MenuPortal = (props) => {
|
|
|
49928
50823
|
MenuPortal.displayName = PORTAL_NAME3;
|
|
49929
50824
|
var CONTENT_NAME3 = "MenuContent";
|
|
49930
50825
|
var [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME3);
|
|
49931
|
-
var MenuContent =
|
|
50826
|
+
var MenuContent = React55.forwardRef(
|
|
49932
50827
|
(props, forwardedRef) => {
|
|
49933
50828
|
const portalContext = usePortalContext2(CONTENT_NAME3, props.__scopeMenu);
|
|
49934
50829
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
@@ -49937,12 +50832,12 @@ var MenuContent = React50.forwardRef(
|
|
|
49937
50832
|
return /* @__PURE__ */ jsx(Collection2.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection2.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });
|
|
49938
50833
|
}
|
|
49939
50834
|
);
|
|
49940
|
-
var MenuRootContentModal =
|
|
50835
|
+
var MenuRootContentModal = React55.forwardRef(
|
|
49941
50836
|
(props, forwardedRef) => {
|
|
49942
50837
|
const context = useMenuContext(CONTENT_NAME3, props.__scopeMenu);
|
|
49943
|
-
const ref =
|
|
50838
|
+
const ref = React55.useRef(null);
|
|
49944
50839
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
49945
|
-
|
|
50840
|
+
React55.useEffect(() => {
|
|
49946
50841
|
const content = ref.current;
|
|
49947
50842
|
if (content)
|
|
49948
50843
|
return hideOthers(content);
|
|
@@ -49965,7 +50860,7 @@ var MenuRootContentModal = React50.forwardRef(
|
|
|
49965
50860
|
);
|
|
49966
50861
|
}
|
|
49967
50862
|
);
|
|
49968
|
-
var MenuRootContentNonModal =
|
|
50863
|
+
var MenuRootContentNonModal = React55.forwardRef((props, forwardedRef) => {
|
|
49969
50864
|
const context = useMenuContext(CONTENT_NAME3, props.__scopeMenu);
|
|
49970
50865
|
return /* @__PURE__ */ jsx(
|
|
49971
50866
|
MenuContentImpl,
|
|
@@ -49980,7 +50875,7 @@ var MenuRootContentNonModal = React50.forwardRef((props, forwardedRef) => {
|
|
|
49980
50875
|
);
|
|
49981
50876
|
});
|
|
49982
50877
|
var Slot2 = createSlot("MenuContent.ScrollLock");
|
|
49983
|
-
var MenuContentImpl =
|
|
50878
|
+
var MenuContentImpl = React55.forwardRef(
|
|
49984
50879
|
(props, forwardedRef) => {
|
|
49985
50880
|
const {
|
|
49986
50881
|
__scopeMenu,
|
|
@@ -50003,16 +50898,16 @@ var MenuContentImpl = React50.forwardRef(
|
|
|
50003
50898
|
const popperScope = usePopperScope(__scopeMenu);
|
|
50004
50899
|
const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);
|
|
50005
50900
|
const getItems = useCollection2(__scopeMenu);
|
|
50006
|
-
const [currentItemId, setCurrentItemId] =
|
|
50007
|
-
const contentRef =
|
|
50901
|
+
const [currentItemId, setCurrentItemId] = React55.useState(null);
|
|
50902
|
+
const contentRef = React55.useRef(null);
|
|
50008
50903
|
const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);
|
|
50009
|
-
const timerRef =
|
|
50010
|
-
const searchRef =
|
|
50011
|
-
const pointerGraceTimerRef =
|
|
50012
|
-
const pointerGraceIntentRef =
|
|
50013
|
-
const pointerDirRef =
|
|
50014
|
-
const lastPointerXRef =
|
|
50015
|
-
const ScrollLockWrapper = disableOutsideScroll ? Combination_default2 :
|
|
50904
|
+
const timerRef = React55.useRef(0);
|
|
50905
|
+
const searchRef = React55.useRef("");
|
|
50906
|
+
const pointerGraceTimerRef = React55.useRef(0);
|
|
50907
|
+
const pointerGraceIntentRef = React55.useRef(null);
|
|
50908
|
+
const pointerDirRef = React55.useRef("right");
|
|
50909
|
+
const lastPointerXRef = React55.useRef(0);
|
|
50910
|
+
const ScrollLockWrapper = disableOutsideScroll ? Combination_default2 : React55.Fragment;
|
|
50016
50911
|
const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot2, allowPinchZoom: true } : void 0;
|
|
50017
50912
|
const handleTypeaheadSearch = (key) => {
|
|
50018
50913
|
const search = searchRef.current + key;
|
|
@@ -50032,11 +50927,11 @@ var MenuContentImpl = React50.forwardRef(
|
|
|
50032
50927
|
setTimeout(() => newItem.focus());
|
|
50033
50928
|
}
|
|
50034
50929
|
};
|
|
50035
|
-
|
|
50930
|
+
React55.useEffect(() => {
|
|
50036
50931
|
return () => window.clearTimeout(timerRef.current);
|
|
50037
50932
|
}, []);
|
|
50038
50933
|
useFocusGuards();
|
|
50039
|
-
const isPointerMovingToSubmenu =
|
|
50934
|
+
const isPointerMovingToSubmenu = React55.useCallback((event) => {
|
|
50040
50935
|
const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;
|
|
50041
50936
|
return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);
|
|
50042
50937
|
}, []);
|
|
@@ -50045,14 +50940,14 @@ var MenuContentImpl = React50.forwardRef(
|
|
|
50045
50940
|
{
|
|
50046
50941
|
scope: __scopeMenu,
|
|
50047
50942
|
searchRef,
|
|
50048
|
-
onItemEnter:
|
|
50943
|
+
onItemEnter: React55.useCallback(
|
|
50049
50944
|
(event) => {
|
|
50050
50945
|
if (isPointerMovingToSubmenu(event))
|
|
50051
50946
|
event.preventDefault();
|
|
50052
50947
|
},
|
|
50053
50948
|
[isPointerMovingToSubmenu]
|
|
50054
50949
|
),
|
|
50055
|
-
onItemLeave:
|
|
50950
|
+
onItemLeave: React55.useCallback(
|
|
50056
50951
|
(event) => {
|
|
50057
50952
|
if (isPointerMovingToSubmenu(event))
|
|
50058
50953
|
return;
|
|
@@ -50061,7 +50956,7 @@ var MenuContentImpl = React50.forwardRef(
|
|
|
50061
50956
|
},
|
|
50062
50957
|
[isPointerMovingToSubmenu]
|
|
50063
50958
|
),
|
|
50064
|
-
onTriggerLeave:
|
|
50959
|
+
onTriggerLeave: React55.useCallback(
|
|
50065
50960
|
(event) => {
|
|
50066
50961
|
if (isPointerMovingToSubmenu(event))
|
|
50067
50962
|
event.preventDefault();
|
|
@@ -50069,7 +50964,7 @@ var MenuContentImpl = React50.forwardRef(
|
|
|
50069
50964
|
[isPointerMovingToSubmenu]
|
|
50070
50965
|
),
|
|
50071
50966
|
pointerGraceTimerRef,
|
|
50072
|
-
onPointerGraceIntentChange:
|
|
50967
|
+
onPointerGraceIntentChange: React55.useCallback((intent) => {
|
|
50073
50968
|
pointerGraceIntentRef.current = intent;
|
|
50074
50969
|
}, []),
|
|
50075
50970
|
children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(
|
|
@@ -50174,7 +51069,7 @@ var MenuContentImpl = React50.forwardRef(
|
|
|
50174
51069
|
);
|
|
50175
51070
|
MenuContent.displayName = CONTENT_NAME3;
|
|
50176
51071
|
var GROUP_NAME2 = "MenuGroup";
|
|
50177
|
-
var MenuGroup =
|
|
51072
|
+
var MenuGroup = React55.forwardRef(
|
|
50178
51073
|
(props, forwardedRef) => {
|
|
50179
51074
|
const { __scopeMenu, ...groupProps } = props;
|
|
50180
51075
|
return /* @__PURE__ */ jsx(Primitive.div, { role: "group", ...groupProps, ref: forwardedRef });
|
|
@@ -50182,7 +51077,7 @@ var MenuGroup = React50.forwardRef(
|
|
|
50182
51077
|
);
|
|
50183
51078
|
MenuGroup.displayName = GROUP_NAME2;
|
|
50184
51079
|
var LABEL_NAME = "MenuLabel";
|
|
50185
|
-
var MenuLabel =
|
|
51080
|
+
var MenuLabel = React55.forwardRef(
|
|
50186
51081
|
(props, forwardedRef) => {
|
|
50187
51082
|
const { __scopeMenu, ...labelProps } = props;
|
|
50188
51083
|
return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });
|
|
@@ -50191,14 +51086,14 @@ var MenuLabel = React50.forwardRef(
|
|
|
50191
51086
|
MenuLabel.displayName = LABEL_NAME;
|
|
50192
51087
|
var ITEM_NAME2 = "MenuItem";
|
|
50193
51088
|
var ITEM_SELECT = "menu.itemSelect";
|
|
50194
|
-
var MenuItem =
|
|
51089
|
+
var MenuItem = React55.forwardRef(
|
|
50195
51090
|
(props, forwardedRef) => {
|
|
50196
51091
|
const { disabled = false, onSelect, ...itemProps } = props;
|
|
50197
|
-
const ref =
|
|
51092
|
+
const ref = React55.useRef(null);
|
|
50198
51093
|
const rootContext = useMenuRootContext(ITEM_NAME2, props.__scopeMenu);
|
|
50199
51094
|
const contentContext = useMenuContentContext(ITEM_NAME2, props.__scopeMenu);
|
|
50200
51095
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
50201
|
-
const isPointerDownRef =
|
|
51096
|
+
const isPointerDownRef = React55.useRef(false);
|
|
50202
51097
|
const handleSelect = () => {
|
|
50203
51098
|
const menuItem = ref.current;
|
|
50204
51099
|
if (!disabled && menuItem) {
|
|
@@ -50241,16 +51136,16 @@ var MenuItem = React50.forwardRef(
|
|
|
50241
51136
|
}
|
|
50242
51137
|
);
|
|
50243
51138
|
MenuItem.displayName = ITEM_NAME2;
|
|
50244
|
-
var MenuItemImpl =
|
|
51139
|
+
var MenuItemImpl = React55.forwardRef(
|
|
50245
51140
|
(props, forwardedRef) => {
|
|
50246
51141
|
const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;
|
|
50247
51142
|
const contentContext = useMenuContentContext(ITEM_NAME2, __scopeMenu);
|
|
50248
51143
|
const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);
|
|
50249
|
-
const ref =
|
|
51144
|
+
const ref = React55.useRef(null);
|
|
50250
51145
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
50251
|
-
const [isFocused, setIsFocused] =
|
|
50252
|
-
const [textContent, setTextContent] =
|
|
50253
|
-
|
|
51146
|
+
const [isFocused, setIsFocused] = React55.useState(false);
|
|
51147
|
+
const [textContent, setTextContent] = React55.useState("");
|
|
51148
|
+
React55.useEffect(() => {
|
|
50254
51149
|
const menuItem = ref.current;
|
|
50255
51150
|
if (menuItem) {
|
|
50256
51151
|
setTextContent((menuItem.textContent ?? "").trim());
|
|
@@ -50298,7 +51193,7 @@ var MenuItemImpl = React50.forwardRef(
|
|
|
50298
51193
|
}
|
|
50299
51194
|
);
|
|
50300
51195
|
var CHECKBOX_ITEM_NAME = "MenuCheckboxItem";
|
|
50301
|
-
var MenuCheckboxItem =
|
|
51196
|
+
var MenuCheckboxItem = React55.forwardRef(
|
|
50302
51197
|
(props, forwardedRef) => {
|
|
50303
51198
|
const { checked = false, onCheckedChange, ...checkboxItemProps } = props;
|
|
50304
51199
|
return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(
|
|
@@ -50325,7 +51220,7 @@ var [RadioGroupProvider, useRadioGroupContext] = createMenuContext(
|
|
|
50325
51220
|
{ value: void 0, onValueChange: () => {
|
|
50326
51221
|
} }
|
|
50327
51222
|
);
|
|
50328
|
-
var MenuRadioGroup =
|
|
51223
|
+
var MenuRadioGroup = React55.forwardRef(
|
|
50329
51224
|
(props, forwardedRef) => {
|
|
50330
51225
|
const { value, onValueChange, ...groupProps } = props;
|
|
50331
51226
|
const handleValueChange = useCallbackRef2(onValueChange);
|
|
@@ -50334,7 +51229,7 @@ var MenuRadioGroup = React50.forwardRef(
|
|
|
50334
51229
|
);
|
|
50335
51230
|
MenuRadioGroup.displayName = RADIO_GROUP_NAME;
|
|
50336
51231
|
var RADIO_ITEM_NAME = "MenuRadioItem";
|
|
50337
|
-
var MenuRadioItem =
|
|
51232
|
+
var MenuRadioItem = React55.forwardRef(
|
|
50338
51233
|
(props, forwardedRef) => {
|
|
50339
51234
|
const { value, ...radioItemProps } = props;
|
|
50340
51235
|
const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);
|
|
@@ -50362,7 +51257,7 @@ var [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(
|
|
|
50362
51257
|
ITEM_INDICATOR_NAME,
|
|
50363
51258
|
{ checked: false }
|
|
50364
51259
|
);
|
|
50365
|
-
var MenuItemIndicator =
|
|
51260
|
+
var MenuItemIndicator = React55.forwardRef(
|
|
50366
51261
|
(props, forwardedRef) => {
|
|
50367
51262
|
const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;
|
|
50368
51263
|
const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);
|
|
@@ -50384,7 +51279,7 @@ var MenuItemIndicator = React50.forwardRef(
|
|
|
50384
51279
|
);
|
|
50385
51280
|
MenuItemIndicator.displayName = ITEM_INDICATOR_NAME;
|
|
50386
51281
|
var SEPARATOR_NAME = "MenuSeparator";
|
|
50387
|
-
var MenuSeparator =
|
|
51282
|
+
var MenuSeparator = React55.forwardRef(
|
|
50388
51283
|
(props, forwardedRef) => {
|
|
50389
51284
|
const { __scopeMenu, ...separatorProps } = props;
|
|
50390
51285
|
return /* @__PURE__ */ jsx(
|
|
@@ -50400,7 +51295,7 @@ var MenuSeparator = React50.forwardRef(
|
|
|
50400
51295
|
);
|
|
50401
51296
|
MenuSeparator.displayName = SEPARATOR_NAME;
|
|
50402
51297
|
var ARROW_NAME2 = "MenuArrow";
|
|
50403
|
-
var MenuArrow =
|
|
51298
|
+
var MenuArrow = React55.forwardRef(
|
|
50404
51299
|
(props, forwardedRef) => {
|
|
50405
51300
|
const { __scopeMenu, ...arrowProps } = props;
|
|
50406
51301
|
const popperScope = usePopperScope(__scopeMenu);
|
|
@@ -50411,22 +51306,22 @@ MenuArrow.displayName = ARROW_NAME2;
|
|
|
50411
51306
|
var SUB_NAME = "MenuSub";
|
|
50412
51307
|
var [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);
|
|
50413
51308
|
var SUB_TRIGGER_NAME = "MenuSubTrigger";
|
|
50414
|
-
var MenuSubTrigger =
|
|
51309
|
+
var MenuSubTrigger = React55.forwardRef(
|
|
50415
51310
|
(props, forwardedRef) => {
|
|
50416
51311
|
const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
50417
51312
|
const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
50418
51313
|
const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
50419
51314
|
const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
50420
|
-
const openTimerRef =
|
|
51315
|
+
const openTimerRef = React55.useRef(null);
|
|
50421
51316
|
const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;
|
|
50422
51317
|
const scope = { __scopeMenu: props.__scopeMenu };
|
|
50423
|
-
const clearOpenTimer =
|
|
51318
|
+
const clearOpenTimer = React55.useCallback(() => {
|
|
50424
51319
|
if (openTimerRef.current)
|
|
50425
51320
|
window.clearTimeout(openTimerRef.current);
|
|
50426
51321
|
openTimerRef.current = null;
|
|
50427
51322
|
}, []);
|
|
50428
|
-
|
|
50429
|
-
|
|
51323
|
+
React55.useEffect(() => clearOpenTimer, [clearOpenTimer]);
|
|
51324
|
+
React55.useEffect(() => {
|
|
50430
51325
|
const pointerGraceTimer = pointerGraceTimerRef.current;
|
|
50431
51326
|
return () => {
|
|
50432
51327
|
window.clearTimeout(pointerGraceTimer);
|
|
@@ -50518,14 +51413,14 @@ var MenuSubTrigger = React50.forwardRef(
|
|
|
50518
51413
|
);
|
|
50519
51414
|
MenuSubTrigger.displayName = SUB_TRIGGER_NAME;
|
|
50520
51415
|
var SUB_CONTENT_NAME = "MenuSubContent";
|
|
50521
|
-
var MenuSubContent =
|
|
51416
|
+
var MenuSubContent = React55.forwardRef(
|
|
50522
51417
|
(props, forwardedRef) => {
|
|
50523
51418
|
const portalContext = usePortalContext2(CONTENT_NAME3, props.__scopeMenu);
|
|
50524
51419
|
const { forceMount = portalContext.forceMount, ...subContentProps } = props;
|
|
50525
51420
|
const context = useMenuContext(CONTENT_NAME3, props.__scopeMenu);
|
|
50526
51421
|
const rootContext = useMenuRootContext(CONTENT_NAME3, props.__scopeMenu);
|
|
50527
51422
|
const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);
|
|
50528
|
-
const ref =
|
|
51423
|
+
const ref = React55.useRef(null);
|
|
50529
51424
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
50530
51425
|
return /* @__PURE__ */ jsx(Collection2.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection2.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(
|
|
50531
51426
|
MenuContentImpl,
|
|
@@ -50660,7 +51555,7 @@ var DropdownMenu = (props) => {
|
|
|
50660
51555
|
modal = true
|
|
50661
51556
|
} = props;
|
|
50662
51557
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50663
|
-
const triggerRef =
|
|
51558
|
+
const triggerRef = React55.useRef(null);
|
|
50664
51559
|
const [open, setOpen] = useControllableState({
|
|
50665
51560
|
prop: openProp,
|
|
50666
51561
|
defaultProp: defaultOpen ?? false,
|
|
@@ -50676,7 +51571,7 @@ var DropdownMenu = (props) => {
|
|
|
50676
51571
|
contentId: useId(),
|
|
50677
51572
|
open,
|
|
50678
51573
|
onOpenChange: setOpen,
|
|
50679
|
-
onOpenToggle:
|
|
51574
|
+
onOpenToggle: React55.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
|
|
50680
51575
|
modal,
|
|
50681
51576
|
children: /* @__PURE__ */ jsx(Root32, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })
|
|
50682
51577
|
}
|
|
@@ -50684,7 +51579,7 @@ var DropdownMenu = (props) => {
|
|
|
50684
51579
|
};
|
|
50685
51580
|
DropdownMenu.displayName = DROPDOWN_MENU_NAME;
|
|
50686
51581
|
var TRIGGER_NAME2 = "DropdownMenuTrigger";
|
|
50687
|
-
var DropdownMenuTrigger =
|
|
51582
|
+
var DropdownMenuTrigger = React55.forwardRef(
|
|
50688
51583
|
(props, forwardedRef) => {
|
|
50689
51584
|
const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
|
|
50690
51585
|
const context = useDropdownMenuContext(TRIGGER_NAME2, __scopeDropdownMenu);
|
|
@@ -50732,12 +51627,12 @@ var DropdownMenuPortal = (props) => {
|
|
|
50732
51627
|
};
|
|
50733
51628
|
DropdownMenuPortal.displayName = PORTAL_NAME4;
|
|
50734
51629
|
var CONTENT_NAME4 = "DropdownMenuContent";
|
|
50735
|
-
var DropdownMenuContent =
|
|
51630
|
+
var DropdownMenuContent = React55.forwardRef(
|
|
50736
51631
|
(props, forwardedRef) => {
|
|
50737
51632
|
const { __scopeDropdownMenu, ...contentProps } = props;
|
|
50738
51633
|
const context = useDropdownMenuContext(CONTENT_NAME4, __scopeDropdownMenu);
|
|
50739
51634
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50740
|
-
const hasInteractedOutsideRef =
|
|
51635
|
+
const hasInteractedOutsideRef = React55.useRef(false);
|
|
50741
51636
|
return /* @__PURE__ */ jsx(
|
|
50742
51637
|
Content22,
|
|
50743
51638
|
{
|
|
@@ -50776,7 +51671,7 @@ var DropdownMenuContent = React50.forwardRef(
|
|
|
50776
51671
|
);
|
|
50777
51672
|
DropdownMenuContent.displayName = CONTENT_NAME4;
|
|
50778
51673
|
var GROUP_NAME3 = "DropdownMenuGroup";
|
|
50779
|
-
var DropdownMenuGroup =
|
|
51674
|
+
var DropdownMenuGroup = React55.forwardRef(
|
|
50780
51675
|
(props, forwardedRef) => {
|
|
50781
51676
|
const { __scopeDropdownMenu, ...groupProps } = props;
|
|
50782
51677
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
@@ -50785,7 +51680,7 @@ var DropdownMenuGroup = React50.forwardRef(
|
|
|
50785
51680
|
);
|
|
50786
51681
|
DropdownMenuGroup.displayName = GROUP_NAME3;
|
|
50787
51682
|
var LABEL_NAME2 = "DropdownMenuLabel";
|
|
50788
|
-
var DropdownMenuLabel =
|
|
51683
|
+
var DropdownMenuLabel = React55.forwardRef(
|
|
50789
51684
|
(props, forwardedRef) => {
|
|
50790
51685
|
const { __scopeDropdownMenu, ...labelProps } = props;
|
|
50791
51686
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
@@ -50794,7 +51689,7 @@ var DropdownMenuLabel = React50.forwardRef(
|
|
|
50794
51689
|
);
|
|
50795
51690
|
DropdownMenuLabel.displayName = LABEL_NAME2;
|
|
50796
51691
|
var ITEM_NAME3 = "DropdownMenuItem";
|
|
50797
|
-
var DropdownMenuItem =
|
|
51692
|
+
var DropdownMenuItem = React55.forwardRef(
|
|
50798
51693
|
(props, forwardedRef) => {
|
|
50799
51694
|
const { __scopeDropdownMenu, ...itemProps } = props;
|
|
50800
51695
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
@@ -50803,42 +51698,42 @@ var DropdownMenuItem = React50.forwardRef(
|
|
|
50803
51698
|
);
|
|
50804
51699
|
DropdownMenuItem.displayName = ITEM_NAME3;
|
|
50805
51700
|
var CHECKBOX_ITEM_NAME2 = "DropdownMenuCheckboxItem";
|
|
50806
|
-
var DropdownMenuCheckboxItem =
|
|
51701
|
+
var DropdownMenuCheckboxItem = React55.forwardRef((props, forwardedRef) => {
|
|
50807
51702
|
const { __scopeDropdownMenu, ...checkboxItemProps } = props;
|
|
50808
51703
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50809
51704
|
return /* @__PURE__ */ jsx(CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });
|
|
50810
51705
|
});
|
|
50811
51706
|
DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME2;
|
|
50812
51707
|
var RADIO_GROUP_NAME2 = "DropdownMenuRadioGroup";
|
|
50813
|
-
var DropdownMenuRadioGroup =
|
|
51708
|
+
var DropdownMenuRadioGroup = React55.forwardRef((props, forwardedRef) => {
|
|
50814
51709
|
const { __scopeDropdownMenu, ...radioGroupProps } = props;
|
|
50815
51710
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50816
51711
|
return /* @__PURE__ */ jsx(RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });
|
|
50817
51712
|
});
|
|
50818
51713
|
DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME2;
|
|
50819
51714
|
var RADIO_ITEM_NAME2 = "DropdownMenuRadioItem";
|
|
50820
|
-
var DropdownMenuRadioItem =
|
|
51715
|
+
var DropdownMenuRadioItem = React55.forwardRef((props, forwardedRef) => {
|
|
50821
51716
|
const { __scopeDropdownMenu, ...radioItemProps } = props;
|
|
50822
51717
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50823
51718
|
return /* @__PURE__ */ jsx(RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });
|
|
50824
51719
|
});
|
|
50825
51720
|
DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME2;
|
|
50826
51721
|
var INDICATOR_NAME = "DropdownMenuItemIndicator";
|
|
50827
|
-
var DropdownMenuItemIndicator =
|
|
51722
|
+
var DropdownMenuItemIndicator = React55.forwardRef((props, forwardedRef) => {
|
|
50828
51723
|
const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
|
|
50829
51724
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50830
51725
|
return /* @__PURE__ */ jsx(ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });
|
|
50831
51726
|
});
|
|
50832
51727
|
DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
|
|
50833
51728
|
var SEPARATOR_NAME2 = "DropdownMenuSeparator";
|
|
50834
|
-
var DropdownMenuSeparator =
|
|
51729
|
+
var DropdownMenuSeparator = React55.forwardRef((props, forwardedRef) => {
|
|
50835
51730
|
const { __scopeDropdownMenu, ...separatorProps } = props;
|
|
50836
51731
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50837
51732
|
return /* @__PURE__ */ jsx(Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });
|
|
50838
51733
|
});
|
|
50839
51734
|
DropdownMenuSeparator.displayName = SEPARATOR_NAME2;
|
|
50840
51735
|
var ARROW_NAME3 = "DropdownMenuArrow";
|
|
50841
|
-
var DropdownMenuArrow =
|
|
51736
|
+
var DropdownMenuArrow = React55.forwardRef(
|
|
50842
51737
|
(props, forwardedRef) => {
|
|
50843
51738
|
const { __scopeDropdownMenu, ...arrowProps } = props;
|
|
50844
51739
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
@@ -50847,14 +51742,14 @@ var DropdownMenuArrow = React50.forwardRef(
|
|
|
50847
51742
|
);
|
|
50848
51743
|
DropdownMenuArrow.displayName = ARROW_NAME3;
|
|
50849
51744
|
var SUB_TRIGGER_NAME2 = "DropdownMenuSubTrigger";
|
|
50850
|
-
var DropdownMenuSubTrigger =
|
|
51745
|
+
var DropdownMenuSubTrigger = React55.forwardRef((props, forwardedRef) => {
|
|
50851
51746
|
const { __scopeDropdownMenu, ...subTriggerProps } = props;
|
|
50852
51747
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50853
51748
|
return /* @__PURE__ */ jsx(SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });
|
|
50854
51749
|
});
|
|
50855
51750
|
DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME2;
|
|
50856
51751
|
var SUB_CONTENT_NAME2 = "DropdownMenuSubContent";
|
|
50857
|
-
var DropdownMenuSubContent =
|
|
51752
|
+
var DropdownMenuSubContent = React55.forwardRef((props, forwardedRef) => {
|
|
50858
51753
|
const { __scopeDropdownMenu, ...subContentProps } = props;
|
|
50859
51754
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
50860
51755
|
return /* @__PURE__ */ jsx(
|
|
@@ -50892,7 +51787,7 @@ var SubTrigger2 = DropdownMenuSubTrigger;
|
|
|
50892
51787
|
var SubContent2 = DropdownMenuSubContent;
|
|
50893
51788
|
var DropdownMenu2 = Root23;
|
|
50894
51789
|
var DropdownMenuTrigger2 = Trigger2;
|
|
50895
|
-
var DropdownMenuSubTrigger2 =
|
|
51790
|
+
var DropdownMenuSubTrigger2 = React55.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
50896
51791
|
SubTrigger2,
|
|
50897
51792
|
{
|
|
50898
51793
|
ref,
|
|
@@ -50909,7 +51804,7 @@ var DropdownMenuSubTrigger2 = React50.forwardRef(({ className, inset, children,
|
|
|
50909
51804
|
}
|
|
50910
51805
|
));
|
|
50911
51806
|
DropdownMenuSubTrigger2.displayName = SubTrigger2.displayName;
|
|
50912
|
-
var DropdownMenuSubContent2 =
|
|
51807
|
+
var DropdownMenuSubContent2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50913
51808
|
SubContent2,
|
|
50914
51809
|
{
|
|
50915
51810
|
ref,
|
|
@@ -50921,7 +51816,7 @@ var DropdownMenuSubContent2 = React50.forwardRef(({ className, ...props }, ref)
|
|
|
50921
51816
|
}
|
|
50922
51817
|
));
|
|
50923
51818
|
DropdownMenuSubContent2.displayName = SubContent2.displayName;
|
|
50924
|
-
var DropdownMenuContent2 =
|
|
51819
|
+
var DropdownMenuContent2 = React55.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(Portal22, { children: /* @__PURE__ */ jsx(
|
|
50925
51820
|
Content23,
|
|
50926
51821
|
{
|
|
50927
51822
|
ref,
|
|
@@ -50934,7 +51829,7 @@ var DropdownMenuContent2 = React50.forwardRef(({ className, sideOffset = 4, ...p
|
|
|
50934
51829
|
}
|
|
50935
51830
|
) }));
|
|
50936
51831
|
DropdownMenuContent2.displayName = Content23.displayName;
|
|
50937
|
-
var DropdownMenuItem2 =
|
|
51832
|
+
var DropdownMenuItem2 = React55.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50938
51833
|
Item23,
|
|
50939
51834
|
{
|
|
50940
51835
|
ref,
|
|
@@ -50947,7 +51842,7 @@ var DropdownMenuItem2 = React50.forwardRef(({ className, inset, ...props }, ref)
|
|
|
50947
51842
|
}
|
|
50948
51843
|
));
|
|
50949
51844
|
DropdownMenuItem2.displayName = Item23.displayName;
|
|
50950
|
-
var DropdownMenuCheckboxItem2 =
|
|
51845
|
+
var DropdownMenuCheckboxItem2 = React55.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
50951
51846
|
CheckboxItem2,
|
|
50952
51847
|
{
|
|
50953
51848
|
ref,
|
|
@@ -50964,7 +51859,7 @@ var DropdownMenuCheckboxItem2 = React50.forwardRef(({ className, children, check
|
|
|
50964
51859
|
}
|
|
50965
51860
|
));
|
|
50966
51861
|
DropdownMenuCheckboxItem2.displayName = CheckboxItem2.displayName;
|
|
50967
|
-
var DropdownMenuRadioItem2 =
|
|
51862
|
+
var DropdownMenuRadioItem2 = React55.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
50968
51863
|
RadioItem2,
|
|
50969
51864
|
{
|
|
50970
51865
|
ref,
|
|
@@ -50980,7 +51875,7 @@ var DropdownMenuRadioItem2 = React50.forwardRef(({ className, children, ...props
|
|
|
50980
51875
|
}
|
|
50981
51876
|
));
|
|
50982
51877
|
DropdownMenuRadioItem2.displayName = RadioItem2.displayName;
|
|
50983
|
-
var DropdownMenuLabel2 =
|
|
51878
|
+
var DropdownMenuLabel2 = React55.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50984
51879
|
Label22,
|
|
50985
51880
|
{
|
|
50986
51881
|
ref,
|
|
@@ -50993,7 +51888,7 @@ var DropdownMenuLabel2 = React50.forwardRef(({ className, inset, ...props }, ref
|
|
|
50993
51888
|
}
|
|
50994
51889
|
));
|
|
50995
51890
|
DropdownMenuLabel2.displayName = Label22.displayName;
|
|
50996
|
-
var DropdownMenuSeparator2 =
|
|
51891
|
+
var DropdownMenuSeparator2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
50997
51892
|
Separator2,
|
|
50998
51893
|
{
|
|
50999
51894
|
ref,
|
|
@@ -51029,7 +51924,7 @@ var tooltipVariants = cva(
|
|
|
51029
51924
|
);
|
|
51030
51925
|
var Tooltip = TooltipPrimitive.Root;
|
|
51031
51926
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
51032
|
-
var TooltipArrow =
|
|
51927
|
+
var TooltipArrow = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
51033
51928
|
TooltipPrimitive.Arrow,
|
|
51034
51929
|
{
|
|
51035
51930
|
ref,
|
|
@@ -51038,7 +51933,7 @@ var TooltipArrow = React50.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
51038
51933
|
}
|
|
51039
51934
|
));
|
|
51040
51935
|
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
|
51041
|
-
var TooltipContent =
|
|
51936
|
+
var TooltipContent = React55.forwardRef(({ className, variant, size: size4, showArrow = false, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
51042
51937
|
TooltipPrimitive.Content,
|
|
51043
51938
|
{
|
|
51044
51939
|
ref,
|
|
@@ -51052,7 +51947,7 @@ var TooltipContent = React50.forwardRef(({ className, variant, size: size4, show
|
|
|
51052
51947
|
}
|
|
51053
51948
|
));
|
|
51054
51949
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
51055
|
-
var SimpleTooltip =
|
|
51950
|
+
var SimpleTooltip = React55.forwardRef(
|
|
51056
51951
|
({
|
|
51057
51952
|
children,
|
|
51058
51953
|
content,
|
|
@@ -51117,8 +52012,8 @@ var Popover = (props) => {
|
|
|
51117
52012
|
modal = false
|
|
51118
52013
|
} = props;
|
|
51119
52014
|
const popperScope = usePopperScope2(__scopePopover);
|
|
51120
|
-
const triggerRef =
|
|
51121
|
-
const [hasCustomAnchor, setHasCustomAnchor] =
|
|
52015
|
+
const triggerRef = React55.useRef(null);
|
|
52016
|
+
const [hasCustomAnchor, setHasCustomAnchor] = React55.useState(false);
|
|
51122
52017
|
const [open, setOpen] = useControllableState({
|
|
51123
52018
|
prop: openProp,
|
|
51124
52019
|
defaultProp: defaultOpen ?? false,
|
|
@@ -51133,10 +52028,10 @@ var Popover = (props) => {
|
|
|
51133
52028
|
triggerRef,
|
|
51134
52029
|
open,
|
|
51135
52030
|
onOpenChange: setOpen,
|
|
51136
|
-
onOpenToggle:
|
|
52031
|
+
onOpenToggle: React55.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
|
|
51137
52032
|
hasCustomAnchor,
|
|
51138
|
-
onCustomAnchorAdd:
|
|
51139
|
-
onCustomAnchorRemove:
|
|
52033
|
+
onCustomAnchorAdd: React55.useCallback(() => setHasCustomAnchor(true), []),
|
|
52034
|
+
onCustomAnchorRemove: React55.useCallback(() => setHasCustomAnchor(false), []),
|
|
51140
52035
|
modal,
|
|
51141
52036
|
children
|
|
51142
52037
|
}
|
|
@@ -51144,13 +52039,13 @@ var Popover = (props) => {
|
|
|
51144
52039
|
};
|
|
51145
52040
|
Popover.displayName = POPOVER_NAME;
|
|
51146
52041
|
var ANCHOR_NAME3 = "PopoverAnchor";
|
|
51147
|
-
var PopoverAnchor =
|
|
52042
|
+
var PopoverAnchor = React55.forwardRef(
|
|
51148
52043
|
(props, forwardedRef) => {
|
|
51149
52044
|
const { __scopePopover, ...anchorProps } = props;
|
|
51150
52045
|
const context = usePopoverContext(ANCHOR_NAME3, __scopePopover);
|
|
51151
52046
|
const popperScope = usePopperScope2(__scopePopover);
|
|
51152
52047
|
const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
|
|
51153
|
-
|
|
52048
|
+
React55.useEffect(() => {
|
|
51154
52049
|
onCustomAnchorAdd();
|
|
51155
52050
|
return () => onCustomAnchorRemove();
|
|
51156
52051
|
}, [onCustomAnchorAdd, onCustomAnchorRemove]);
|
|
@@ -51159,7 +52054,7 @@ var PopoverAnchor = React50.forwardRef(
|
|
|
51159
52054
|
);
|
|
51160
52055
|
PopoverAnchor.displayName = ANCHOR_NAME3;
|
|
51161
52056
|
var TRIGGER_NAME3 = "PopoverTrigger";
|
|
51162
|
-
var PopoverTrigger =
|
|
52057
|
+
var PopoverTrigger = React55.forwardRef(
|
|
51163
52058
|
(props, forwardedRef) => {
|
|
51164
52059
|
const { __scopePopover, ...triggerProps } = props;
|
|
51165
52060
|
const context = usePopoverContext(TRIGGER_NAME3, __scopePopover);
|
|
@@ -51187,7 +52082,7 @@ var [PortalProvider3, usePortalContext3] = createPopoverContext(PORTAL_NAME5, {
|
|
|
51187
52082
|
forceMount: void 0
|
|
51188
52083
|
});
|
|
51189
52084
|
var CONTENT_NAME5 = "PopoverContent";
|
|
51190
|
-
var PopoverContent =
|
|
52085
|
+
var PopoverContent = React55.forwardRef(
|
|
51191
52086
|
(props, forwardedRef) => {
|
|
51192
52087
|
const portalContext = usePortalContext3(CONTENT_NAME5, props.__scopePopover);
|
|
51193
52088
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
@@ -51197,13 +52092,13 @@ var PopoverContent = React50.forwardRef(
|
|
|
51197
52092
|
);
|
|
51198
52093
|
PopoverContent.displayName = CONTENT_NAME5;
|
|
51199
52094
|
var Slot3 = createSlot("PopoverContent.RemoveScroll");
|
|
51200
|
-
var PopoverContentModal =
|
|
52095
|
+
var PopoverContentModal = React55.forwardRef(
|
|
51201
52096
|
(props, forwardedRef) => {
|
|
51202
52097
|
const context = usePopoverContext(CONTENT_NAME5, props.__scopePopover);
|
|
51203
|
-
const contentRef =
|
|
52098
|
+
const contentRef = React55.useRef(null);
|
|
51204
52099
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
51205
|
-
const isRightClickOutsideRef =
|
|
51206
|
-
|
|
52100
|
+
const isRightClickOutsideRef = React55.useRef(false);
|
|
52101
|
+
React55.useEffect(() => {
|
|
51207
52102
|
const content = contentRef.current;
|
|
51208
52103
|
if (content)
|
|
51209
52104
|
return hideOthers(content);
|
|
@@ -51239,11 +52134,11 @@ var PopoverContentModal = React50.forwardRef(
|
|
|
51239
52134
|
) });
|
|
51240
52135
|
}
|
|
51241
52136
|
);
|
|
51242
|
-
var PopoverContentNonModal =
|
|
52137
|
+
var PopoverContentNonModal = React55.forwardRef(
|
|
51243
52138
|
(props, forwardedRef) => {
|
|
51244
52139
|
const context = usePopoverContext(CONTENT_NAME5, props.__scopePopover);
|
|
51245
|
-
const hasInteractedOutsideRef =
|
|
51246
|
-
const hasPointerDownOutsideRef =
|
|
52140
|
+
const hasInteractedOutsideRef = React55.useRef(false);
|
|
52141
|
+
const hasPointerDownOutsideRef = React55.useRef(false);
|
|
51247
52142
|
return /* @__PURE__ */ jsx(
|
|
51248
52143
|
PopoverContentImpl,
|
|
51249
52144
|
{
|
|
@@ -51281,7 +52176,7 @@ var PopoverContentNonModal = React50.forwardRef(
|
|
|
51281
52176
|
);
|
|
51282
52177
|
}
|
|
51283
52178
|
);
|
|
51284
|
-
var PopoverContentImpl =
|
|
52179
|
+
var PopoverContentImpl = React55.forwardRef(
|
|
51285
52180
|
(props, forwardedRef) => {
|
|
51286
52181
|
const {
|
|
51287
52182
|
__scopePopover,
|
|
@@ -51345,7 +52240,7 @@ var PopoverContentImpl = React50.forwardRef(
|
|
|
51345
52240
|
}
|
|
51346
52241
|
);
|
|
51347
52242
|
var CLOSE_NAME2 = "PopoverClose";
|
|
51348
|
-
var PopoverClose =
|
|
52243
|
+
var PopoverClose = React55.forwardRef(
|
|
51349
52244
|
(props, forwardedRef) => {
|
|
51350
52245
|
const { __scopePopover, ...closeProps } = props;
|
|
51351
52246
|
const context = usePopoverContext(CLOSE_NAME2, __scopePopover);
|
|
@@ -51362,7 +52257,7 @@ var PopoverClose = React50.forwardRef(
|
|
|
51362
52257
|
);
|
|
51363
52258
|
PopoverClose.displayName = CLOSE_NAME2;
|
|
51364
52259
|
var ARROW_NAME4 = "PopoverArrow";
|
|
51365
|
-
var PopoverArrow =
|
|
52260
|
+
var PopoverArrow = React55.forwardRef(
|
|
51366
52261
|
(props, forwardedRef) => {
|
|
51367
52262
|
const { __scopePopover, ...arrowProps } = props;
|
|
51368
52263
|
const popperScope = usePopperScope2(__scopePopover);
|
|
@@ -51427,7 +52322,7 @@ var popoverContentVariants = cva(
|
|
|
51427
52322
|
);
|
|
51428
52323
|
var Popover2 = Root24;
|
|
51429
52324
|
var PopoverTrigger2 = Trigger4;
|
|
51430
|
-
var PopoverContent2 =
|
|
52325
|
+
var PopoverContent2 = React55.forwardRef(({
|
|
51431
52326
|
className,
|
|
51432
52327
|
variant,
|
|
51433
52328
|
size: size4,
|
|
@@ -51550,7 +52445,7 @@ var sliderThumbVariants = cva(
|
|
|
51550
52445
|
}
|
|
51551
52446
|
}
|
|
51552
52447
|
);
|
|
51553
|
-
var Slider =
|
|
52448
|
+
var Slider = React55.forwardRef(({
|
|
51554
52449
|
className,
|
|
51555
52450
|
size: size4,
|
|
51556
52451
|
trackVariant,
|
|
@@ -51566,10 +52461,10 @@ var Slider = React50.forwardRef(({
|
|
|
51566
52461
|
disabled,
|
|
51567
52462
|
...props
|
|
51568
52463
|
}, ref) => {
|
|
51569
|
-
const [sliderValue, setSliderValue] =
|
|
52464
|
+
const [sliderValue, setSliderValue] = React55.useState(
|
|
51570
52465
|
value || defaultValue || [0]
|
|
51571
52466
|
);
|
|
51572
|
-
|
|
52467
|
+
React55.useEffect(() => {
|
|
51573
52468
|
if (value !== void 0) {
|
|
51574
52469
|
setSliderValue(value);
|
|
51575
52470
|
}
|
|
@@ -51584,7 +52479,7 @@ var Slider = React50.forwardRef(({
|
|
|
51584
52479
|
const calculateThumbPercent = (value2, min3, max3) => {
|
|
51585
52480
|
return (value2 - min3) / (max3 - min3) * 100;
|
|
51586
52481
|
};
|
|
51587
|
-
const trackRef =
|
|
52482
|
+
const trackRef = React55.useRef(null);
|
|
51588
52483
|
const min2 = props.min || 0;
|
|
51589
52484
|
const max2 = props.max || 100;
|
|
51590
52485
|
const step = props.step || 1;
|
|
@@ -51719,7 +52614,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
|
51719
52614
|
wordWrap: "normal"
|
|
51720
52615
|
});
|
|
51721
52616
|
var NAME3 = "VisuallyHidden";
|
|
51722
|
-
var VisuallyHidden =
|
|
52617
|
+
var VisuallyHidden = React55.forwardRef(
|
|
51723
52618
|
(props, forwardedRef) => {
|
|
51724
52619
|
return /* @__PURE__ */ jsx(
|
|
51725
52620
|
Primitive.span,
|
|
@@ -51740,7 +52635,7 @@ var VIEWPORT_NAME = "ToastViewport";
|
|
|
51740
52635
|
var VIEWPORT_DEFAULT_HOTKEY = ["F8"];
|
|
51741
52636
|
var VIEWPORT_PAUSE = "toast.viewportPause";
|
|
51742
52637
|
var VIEWPORT_RESUME = "toast.viewportResume";
|
|
51743
|
-
var ToastViewport =
|
|
52638
|
+
var ToastViewport = React55.forwardRef(
|
|
51744
52639
|
(props, forwardedRef) => {
|
|
51745
52640
|
const {
|
|
51746
52641
|
__scopeToast,
|
|
@@ -51750,14 +52645,14 @@ var ToastViewport = React50.forwardRef(
|
|
|
51750
52645
|
} = props;
|
|
51751
52646
|
const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);
|
|
51752
52647
|
const getItems = useCollection3(__scopeToast);
|
|
51753
|
-
const wrapperRef =
|
|
51754
|
-
const headFocusProxyRef =
|
|
51755
|
-
const tailFocusProxyRef =
|
|
51756
|
-
const ref =
|
|
52648
|
+
const wrapperRef = React55.useRef(null);
|
|
52649
|
+
const headFocusProxyRef = React55.useRef(null);
|
|
52650
|
+
const tailFocusProxyRef = React55.useRef(null);
|
|
52651
|
+
const ref = React55.useRef(null);
|
|
51757
52652
|
const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);
|
|
51758
52653
|
const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
|
|
51759
52654
|
const hasToasts = context.toastCount > 0;
|
|
51760
|
-
|
|
52655
|
+
React55.useEffect(() => {
|
|
51761
52656
|
const handleKeyDown3 = (event) => {
|
|
51762
52657
|
const isHotkeyPressed = hotkey.length !== 0 && hotkey.every((key) => event[key] || event.code === key);
|
|
51763
52658
|
if (isHotkeyPressed)
|
|
@@ -51766,7 +52661,7 @@ var ToastViewport = React50.forwardRef(
|
|
|
51766
52661
|
document.addEventListener("keydown", handleKeyDown3);
|
|
51767
52662
|
return () => document.removeEventListener("keydown", handleKeyDown3);
|
|
51768
52663
|
}, [hotkey]);
|
|
51769
|
-
|
|
52664
|
+
React55.useEffect(() => {
|
|
51770
52665
|
const wrapper = wrapperRef.current;
|
|
51771
52666
|
const viewport = ref.current;
|
|
51772
52667
|
if (hasToasts && wrapper && viewport) {
|
|
@@ -51810,7 +52705,7 @@ var ToastViewport = React50.forwardRef(
|
|
|
51810
52705
|
};
|
|
51811
52706
|
}
|
|
51812
52707
|
}, [hasToasts, context.isClosePausedRef]);
|
|
51813
|
-
const getSortedTabbableCandidates =
|
|
52708
|
+
const getSortedTabbableCandidates = React55.useCallback(
|
|
51814
52709
|
({ tabbingDirection }) => {
|
|
51815
52710
|
const toastItems = getItems();
|
|
51816
52711
|
const tabbableCandidates = toastItems.map((toastItem) => {
|
|
@@ -51822,7 +52717,7 @@ var ToastViewport = React50.forwardRef(
|
|
|
51822
52717
|
},
|
|
51823
52718
|
[getItems]
|
|
51824
52719
|
);
|
|
51825
|
-
|
|
52720
|
+
React55.useEffect(() => {
|
|
51826
52721
|
const viewport = ref.current;
|
|
51827
52722
|
if (viewport) {
|
|
51828
52723
|
const handleKeyDown3 = (event) => {
|
|
@@ -51891,7 +52786,7 @@ var ToastViewport = React50.forwardRef(
|
|
|
51891
52786
|
);
|
|
51892
52787
|
ToastViewport.displayName = VIEWPORT_NAME;
|
|
51893
52788
|
var FOCUS_PROXY_NAME = "ToastFocusProxy";
|
|
51894
|
-
var FocusProxy =
|
|
52789
|
+
var FocusProxy = React55.forwardRef(
|
|
51895
52790
|
(props, forwardedRef) => {
|
|
51896
52791
|
const { __scopeToast, onFocusFromOutsideViewport, ...proxyProps } = props;
|
|
51897
52792
|
const context = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast);
|
|
@@ -51919,7 +52814,7 @@ var TOAST_SWIPE_START = "toast.swipeStart";
|
|
|
51919
52814
|
var TOAST_SWIPE_MOVE = "toast.swipeMove";
|
|
51920
52815
|
var TOAST_SWIPE_CANCEL = "toast.swipeCancel";
|
|
51921
52816
|
var TOAST_SWIPE_END = "toast.swipeEnd";
|
|
51922
|
-
var Toast =
|
|
52817
|
+
var Toast = React55.forwardRef(
|
|
51923
52818
|
(props, forwardedRef) => {
|
|
51924
52819
|
const { forceMount, open: openProp, defaultOpen, onOpenChange, ...toastProps } = props;
|
|
51925
52820
|
const [open, setOpen] = useControllableState({
|
|
@@ -51971,7 +52866,7 @@ var [ToastInteractiveProvider, useToastInteractiveContext] = createToastContext(
|
|
|
51971
52866
|
onClose() {
|
|
51972
52867
|
}
|
|
51973
52868
|
});
|
|
51974
|
-
var ToastImpl =
|
|
52869
|
+
var ToastImpl = React55.forwardRef(
|
|
51975
52870
|
(props, forwardedRef) => {
|
|
51976
52871
|
const {
|
|
51977
52872
|
__scopeToast,
|
|
@@ -51989,14 +52884,14 @@ var ToastImpl = React50.forwardRef(
|
|
|
51989
52884
|
...toastProps
|
|
51990
52885
|
} = props;
|
|
51991
52886
|
const context = useToastProviderContext(TOAST_NAME, __scopeToast);
|
|
51992
|
-
const [node, setNode2] =
|
|
52887
|
+
const [node, setNode2] = React55.useState(null);
|
|
51993
52888
|
const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode2(node2));
|
|
51994
|
-
const pointerStartRef =
|
|
51995
|
-
const swipeDeltaRef =
|
|
52889
|
+
const pointerStartRef = React55.useRef(null);
|
|
52890
|
+
const swipeDeltaRef = React55.useRef(null);
|
|
51996
52891
|
const duration = durationProp || context.duration;
|
|
51997
|
-
const closeTimerStartTimeRef =
|
|
51998
|
-
const closeTimerRemainingTimeRef =
|
|
51999
|
-
const closeTimerRef =
|
|
52892
|
+
const closeTimerStartTimeRef = React55.useRef(0);
|
|
52893
|
+
const closeTimerRemainingTimeRef = React55.useRef(duration);
|
|
52894
|
+
const closeTimerRef = React55.useRef(0);
|
|
52000
52895
|
const { onToastAdd, onToastRemove } = context;
|
|
52001
52896
|
const handleClose = useCallbackRef2(() => {
|
|
52002
52897
|
const isFocusInToast = node?.contains(document.activeElement);
|
|
@@ -52004,7 +52899,7 @@ var ToastImpl = React50.forwardRef(
|
|
|
52004
52899
|
context.viewport?.focus();
|
|
52005
52900
|
onClose();
|
|
52006
52901
|
});
|
|
52007
|
-
const startTimer =
|
|
52902
|
+
const startTimer = React55.useCallback(
|
|
52008
52903
|
(duration2) => {
|
|
52009
52904
|
if (!duration2 || duration2 === Infinity)
|
|
52010
52905
|
return;
|
|
@@ -52014,7 +52909,7 @@ var ToastImpl = React50.forwardRef(
|
|
|
52014
52909
|
},
|
|
52015
52910
|
[handleClose]
|
|
52016
52911
|
);
|
|
52017
|
-
|
|
52912
|
+
React55.useEffect(() => {
|
|
52018
52913
|
const viewport = context.viewport;
|
|
52019
52914
|
if (viewport) {
|
|
52020
52915
|
const handleResume = () => {
|
|
@@ -52035,15 +52930,15 @@ var ToastImpl = React50.forwardRef(
|
|
|
52035
52930
|
};
|
|
52036
52931
|
}
|
|
52037
52932
|
}, [context.viewport, duration, onPause, onResume, startTimer]);
|
|
52038
|
-
|
|
52933
|
+
React55.useEffect(() => {
|
|
52039
52934
|
if (open && !context.isClosePausedRef.current)
|
|
52040
52935
|
startTimer(duration);
|
|
52041
52936
|
}, [open, duration, context.isClosePausedRef, startTimer]);
|
|
52042
|
-
|
|
52937
|
+
React55.useEffect(() => {
|
|
52043
52938
|
onToastAdd();
|
|
52044
52939
|
return () => onToastRemove();
|
|
52045
52940
|
}, [onToastAdd, onToastRemove]);
|
|
52046
|
-
const announceTextContent =
|
|
52941
|
+
const announceTextContent = React55.useMemo(() => {
|
|
52047
52942
|
return node ? getAnnounceTextContent(node) : null;
|
|
52048
52943
|
}, [node]);
|
|
52049
52944
|
if (!context.viewport)
|
|
@@ -52165,10 +53060,10 @@ var ToastImpl = React50.forwardRef(
|
|
|
52165
53060
|
var ToastAnnounce = (props) => {
|
|
52166
53061
|
const { __scopeToast, children, ...announceProps } = props;
|
|
52167
53062
|
const context = useToastProviderContext(TOAST_NAME, __scopeToast);
|
|
52168
|
-
const [renderAnnounceText, setRenderAnnounceText] =
|
|
52169
|
-
const [isAnnounced, setIsAnnounced] =
|
|
53063
|
+
const [renderAnnounceText, setRenderAnnounceText] = React55.useState(false);
|
|
53064
|
+
const [isAnnounced, setIsAnnounced] = React55.useState(false);
|
|
52170
53065
|
useNextFrame(() => setRenderAnnounceText(true));
|
|
52171
|
-
|
|
53066
|
+
React55.useEffect(() => {
|
|
52172
53067
|
const timer = window.setTimeout(() => setIsAnnounced(true), 1e3);
|
|
52173
53068
|
return () => window.clearTimeout(timer);
|
|
52174
53069
|
}, []);
|
|
@@ -52179,7 +53074,7 @@ var ToastAnnounce = (props) => {
|
|
|
52179
53074
|
] }) }) });
|
|
52180
53075
|
};
|
|
52181
53076
|
var TITLE_NAME2 = "ToastTitle";
|
|
52182
|
-
var ToastTitle =
|
|
53077
|
+
var ToastTitle = React55.forwardRef(
|
|
52183
53078
|
(props, forwardedRef) => {
|
|
52184
53079
|
const { __scopeToast, ...titleProps } = props;
|
|
52185
53080
|
return /* @__PURE__ */ jsx(Primitive.div, { ...titleProps, ref: forwardedRef });
|
|
@@ -52187,7 +53082,7 @@ var ToastTitle = React50.forwardRef(
|
|
|
52187
53082
|
);
|
|
52188
53083
|
ToastTitle.displayName = TITLE_NAME2;
|
|
52189
53084
|
var DESCRIPTION_NAME2 = "ToastDescription";
|
|
52190
|
-
var ToastDescription =
|
|
53085
|
+
var ToastDescription = React55.forwardRef(
|
|
52191
53086
|
(props, forwardedRef) => {
|
|
52192
53087
|
const { __scopeToast, ...descriptionProps } = props;
|
|
52193
53088
|
return /* @__PURE__ */ jsx(Primitive.div, { ...descriptionProps, ref: forwardedRef });
|
|
@@ -52195,7 +53090,7 @@ var ToastDescription = React50.forwardRef(
|
|
|
52195
53090
|
);
|
|
52196
53091
|
ToastDescription.displayName = DESCRIPTION_NAME2;
|
|
52197
53092
|
var ACTION_NAME = "ToastAction";
|
|
52198
|
-
var ToastAction =
|
|
53093
|
+
var ToastAction = React55.forwardRef(
|
|
52199
53094
|
(props, forwardedRef) => {
|
|
52200
53095
|
const { altText, ...actionProps } = props;
|
|
52201
53096
|
if (!altText.trim()) {
|
|
@@ -52209,7 +53104,7 @@ var ToastAction = React50.forwardRef(
|
|
|
52209
53104
|
);
|
|
52210
53105
|
ToastAction.displayName = ACTION_NAME;
|
|
52211
53106
|
var CLOSE_NAME3 = "ToastClose";
|
|
52212
|
-
var ToastClose =
|
|
53107
|
+
var ToastClose = React55.forwardRef(
|
|
52213
53108
|
(props, forwardedRef) => {
|
|
52214
53109
|
const { __scopeToast, ...closeProps } = props;
|
|
52215
53110
|
const interactiveContext = useToastInteractiveContext(CLOSE_NAME3, __scopeToast);
|
|
@@ -52225,7 +53120,7 @@ var ToastClose = React50.forwardRef(
|
|
|
52225
53120
|
}
|
|
52226
53121
|
);
|
|
52227
53122
|
ToastClose.displayName = CLOSE_NAME3;
|
|
52228
|
-
var ToastAnnounceExclude =
|
|
53123
|
+
var ToastAnnounceExclude = React55.forwardRef((props, forwardedRef) => {
|
|
52229
53124
|
const { __scopeToast, altText, ...announceExcludeProps } = props;
|
|
52230
53125
|
return /* @__PURE__ */ jsx(
|
|
52231
53126
|
Primitive.div,
|
|
@@ -52325,7 +53220,7 @@ var Title2 = ToastTitle;
|
|
|
52325
53220
|
var Description2 = ToastDescription;
|
|
52326
53221
|
var Action = ToastAction;
|
|
52327
53222
|
var Close3 = ToastClose;
|
|
52328
|
-
var ToastViewport2 =
|
|
53223
|
+
var ToastViewport2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52329
53224
|
Viewport,
|
|
52330
53225
|
{
|
|
52331
53226
|
ref,
|
|
@@ -52354,7 +53249,7 @@ var toastVariants = cva(
|
|
|
52354
53249
|
}
|
|
52355
53250
|
}
|
|
52356
53251
|
);
|
|
52357
|
-
var Toast2 =
|
|
53252
|
+
var Toast2 = React55.forwardRef(({ className, variant, ...props }, ref) => {
|
|
52358
53253
|
return /* @__PURE__ */ jsx(
|
|
52359
53254
|
Root25,
|
|
52360
53255
|
{
|
|
@@ -52365,7 +53260,7 @@ var Toast2 = React50.forwardRef(({ className, variant, ...props }, ref) => {
|
|
|
52365
53260
|
);
|
|
52366
53261
|
});
|
|
52367
53262
|
Toast2.displayName = Root25.displayName;
|
|
52368
|
-
var ToastAction2 =
|
|
53263
|
+
var ToastAction2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52369
53264
|
Action,
|
|
52370
53265
|
{
|
|
52371
53266
|
ref,
|
|
@@ -52377,7 +53272,7 @@ var ToastAction2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
52377
53272
|
}
|
|
52378
53273
|
));
|
|
52379
53274
|
ToastAction2.displayName = Action.displayName;
|
|
52380
|
-
var ToastClose2 =
|
|
53275
|
+
var ToastClose2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52381
53276
|
Close3,
|
|
52382
53277
|
{
|
|
52383
53278
|
ref,
|
|
@@ -52391,7 +53286,7 @@ var ToastClose2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
52391
53286
|
}
|
|
52392
53287
|
));
|
|
52393
53288
|
ToastClose2.displayName = Close3.displayName;
|
|
52394
|
-
var ToastTitle2 =
|
|
53289
|
+
var ToastTitle2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52395
53290
|
Title2,
|
|
52396
53291
|
{
|
|
52397
53292
|
ref,
|
|
@@ -52400,7 +53295,7 @@ var ToastTitle2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
52400
53295
|
}
|
|
52401
53296
|
));
|
|
52402
53297
|
ToastTitle2.displayName = Title2.displayName;
|
|
52403
|
-
var ToastDescription2 =
|
|
53298
|
+
var ToastDescription2 = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52404
53299
|
Description2,
|
|
52405
53300
|
{
|
|
52406
53301
|
ref,
|
|
@@ -53945,7 +54840,7 @@ function MemoryEfficientData({
|
|
|
53945
54840
|
position: "absolute",
|
|
53946
54841
|
width: "100%"
|
|
53947
54842
|
},
|
|
53948
|
-
children: visibleData.map((item, index2) => /* @__PURE__ */ jsx(
|
|
54843
|
+
children: visibleData.map((item, index2) => /* @__PURE__ */ jsx(React55__default.Fragment, { children: renderItem(item, visibleRange.start + index2) }, visibleRange.start + index2))
|
|
53949
54844
|
}
|
|
53950
54845
|
) })
|
|
53951
54846
|
}
|
|
@@ -54265,7 +55160,7 @@ function SelectableVirtualList({
|
|
|
54265
55160
|
}, [originalRenderItem, selectable, selectedItems, handleItemClick]);
|
|
54266
55161
|
return /* @__PURE__ */ jsx(VirtualList, { ...props, renderItem });
|
|
54267
55162
|
}
|
|
54268
|
-
var SwipeableCard =
|
|
55163
|
+
var SwipeableCard = React55__default.forwardRef(
|
|
54269
55164
|
({
|
|
54270
55165
|
children,
|
|
54271
55166
|
onSwipeLeft,
|
|
@@ -54574,9 +55469,9 @@ function AdvancedChart({
|
|
|
54574
55469
|
animated = true,
|
|
54575
55470
|
responsive = true
|
|
54576
55471
|
}) {
|
|
54577
|
-
const [isFullscreen, setIsFullscreen] =
|
|
54578
|
-
const chartRef =
|
|
54579
|
-
const trend =
|
|
55472
|
+
const [isFullscreen, setIsFullscreen] = React55__default.useState(false);
|
|
55473
|
+
const chartRef = React55__default.useRef(null);
|
|
55474
|
+
const trend = React55__default.useMemo(() => {
|
|
54580
55475
|
if (!data.length || !series.length)
|
|
54581
55476
|
return null;
|
|
54582
55477
|
const firstSeries = series[0];
|
|
@@ -54822,7 +55717,7 @@ function Dashboard({
|
|
|
54822
55717
|
onRefresh,
|
|
54823
55718
|
loading = false
|
|
54824
55719
|
}) {
|
|
54825
|
-
const [refreshing, setRefreshing] =
|
|
55720
|
+
const [refreshing, setRefreshing] = React55__default.useState(false);
|
|
54826
55721
|
const handleRefresh = async () => {
|
|
54827
55722
|
if (onRefresh) {
|
|
54828
55723
|
setRefreshing(true);
|
|
@@ -55075,4 +55970,4 @@ function DraggableList({
|
|
|
55075
55970
|
) });
|
|
55076
55971
|
}
|
|
55077
55972
|
|
|
55078
|
-
export { AdvancedChart, Calendar2 as Calendar, Dashboard, DraggableList, Kanban, MemoryAnalytics, MemoryEfficientData, RichTextEditor, SelectableVirtualList, SwipeableCard, Timeline, VirtualList, useStreamingData, useVirtualList };
|
|
55973
|
+
export { AdvancedChart, AnimatedButton, Calendar2 as Calendar, Dashboard, DraggableList, ErrorBoundary, FloatingActionButton, HoverCard3D, Kanban, MagneticButton, MemoryAnalytics, MemoryEfficientData, PinchZoom, RichTextEditor, SelectableVirtualList, SpotlightCard, SwipeableCard, Timeline, VirtualList, animatedButtonVariants, useStreamingData, useVirtualList };
|