@nextclaw/ui 0.5.21 → 0.5.23
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/CHANGELOG.md +16 -0
- package/dist/assets/ChannelsList-AKnD2r1L.js +1 -0
- package/dist/assets/ChatPage-DidO_pAN.js +32 -0
- package/dist/assets/{CronConfig-9dYfTRJl.js → CronConfig-C1pm-oKA.js} +1 -1
- package/dist/assets/{DocBrowser-BIV0vpA0.js → DocBrowser-BY90Lf6L.js} +1 -1
- package/dist/assets/{MarketplacePage-2Zi0JSVi.js → MarketplacePage-BRtmhP3G.js} +1 -1
- package/dist/assets/{ModelConfig-h21P5rV0.js → ModelConfig-Dga1Ko7_.js} +1 -1
- package/dist/assets/{ProvidersList-DEaK1a3y.js → ProvidersList-DvCoBTrT.js} +1 -1
- package/dist/assets/{RuntimeConfig-DXMzf-gF.js → RuntimeConfig-2aqBJ6Xn.js} +1 -1
- package/dist/assets/SecretsConfig-wlnh__z0.js +3 -0
- package/dist/assets/{SessionsConfig-SdXvn_9E.js → SessionsConfig-CN2WymbH.js} +2 -2
- package/dist/assets/{action-link-C9xMkxl2.js → action-link-DLZDwUfD.js} +1 -1
- package/dist/assets/{card-Cnqfntk5.js → card-D3dD-I5t.js} +1 -1
- package/dist/assets/chat-message-DZV2Z5oc.js +5 -0
- package/dist/assets/{dialog-DJs630RE.js → dialog-DZ0VC-RD.js} +1 -1
- package/dist/assets/index-BsDasSXm.css +1 -0
- package/dist/assets/index-D_vv0E-O.js +2 -0
- package/dist/assets/{label-CXGuE6Oa.js → label-CJIvvG6o.js} +1 -1
- package/dist/assets/{page-layout-BVZlyPFt.js → page-layout-CLgr0qym.js} +1 -1
- package/dist/assets/{switch-BLF45eI3.js → switch-C-0Q8OH2.js} +1 -1
- package/dist/assets/{tabs-custom-DQ0GpEV5.js → tabs-custom-D4Gs3BGM.js} +1 -1
- package/dist/assets/useConfig-R5uGhZtD.js +1 -0
- package/dist/assets/{useConfirmDialog-CK7KAyDf.js → useConfirmDialog-AMeSTA83.js} +1 -1
- package/dist/assets/{vendor-RXIbhDBC.js → vendor-H2M3a_4Z.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/src/App.tsx +2 -0
- package/src/api/config.ts +16 -0
- package/src/api/types.ts +52 -0
- package/src/components/chat/ChatPage.tsx +67 -9
- package/src/components/chat/ChatThread.tsx +12 -3
- package/src/components/config/ChannelForm.tsx +9 -0
- package/src/components/config/SecretsConfig.tsx +469 -0
- package/src/components/layout/Sidebar.tsx +6 -1
- package/src/hooks/useConfig.ts +17 -0
- package/src/lib/chat-message.ts +80 -2
- package/src/lib/i18n.ts +42 -0
- package/dist/assets/ChannelsList-TFFw4Cem.js +0 -1
- package/dist/assets/ChatPage-BUm3UPap.js +0 -32
- package/dist/assets/chat-message-B7oqvJ2d.js +0 -3
- package/dist/assets/index-CrUDzcei.js +0 -2
- package/dist/assets/index-Zy7fAOe1.css +0 -1
- package/dist/assets/useConfig-vFQvF4kn.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--gray-200))}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: 94 20% 95%;--brand-100: 94 20% 90%;--brand-200: 94 18% 80%;--brand-300: 94 16% 65%;--brand-400: 94 16% 50%;--brand-500: 94 13% 37%;--brand-600: 94 13% 30%;--brand-700: 94 15% 25%;--brand-800: 94 20% 18%;--brand-900: 94 25% 12%;--gray-50: 45 25% 97%;--gray-100: 45 14% 94%;--gray-200: 45 14% 88%;--gray-300: 45 10% 80%;--gray-400: 45 10% 60%;--gray-500: 45 10% 50%;--gray-600: 45 3% 39%;--gray-700: 45 5% 25%;--gray-800: 45 5% 20%;--gray-900: 45 5% 12%;--background: var(--gray-50);--background-secondary: var(--gray-100);--background-tertiary: var(--gray-200);--foreground: var(--gray-800);--foreground-secondary: var(--gray-700);--foreground-tertiary: var(--gray-500);--foreground-muted: var(--gray-400);--primary: var(--brand-500);--primary-hover: var(--brand-600);--primary-active: var(--brand-700);--primary-foreground: 0 0% 100%;--secondary: var(--gray-100);--secondary-hover: var(--gray-200);--secondary-foreground: var(--gray-800);--accent: var(--brand-50);--accent-foreground: var(--brand-700);--muted: var(--gray-100);--muted-foreground: var(--gray-500);--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--card: 0 0% 100%;--card-foreground: var(--gray-800);--card-border: var(--gray-200);--popover: 0 0% 100%;--popover-foreground: var(--gray-800);--border: var(--gray-200);--border-hover: var(--gray-300);--border-active: var(--brand-500);--input: 0 0% 100%;--input-border: var(--gray-200);--input-focus: var(--brand-500);--ring: var(--brand-500);--ring-offset: var(--gray-50);--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(30 20 10 / .04);--shadow-sm: 0 1px 3px 0 rgb(30 20 10 / .06), 0 1px 2px -1px rgb(30 20 10 / .04);--shadow-md: 0 4px 6px -1px rgb(30 20 10 / .06), 0 2px 4px -2px rgb(30 20 10 / .04);--shadow-lg: 0 10px 15px -3px rgb(30 20 10 / .06), 0 4px 6px -4px rgb(30 20 10 / .04);--shadow-xl: 0 20px 25px -5px rgb(30 20 10 / .08), 0 8px 10px -6px rgb(30 20 10 / .04);--shadow-2xl: 0 25px 50px -12px rgb(30 20 10 / .15);--shadow-card: 0 0 8px 0 rgba(0, 0, 0, .04);--shadow-card-hover: 0 0 16px 0 rgba(0, 0, 0, .06);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700}:root[data-theme=cool]{--brand-50: 214 100% 97%;--brand-100: 214 95% 93%;--brand-200: 213 97% 87%;--brand-300: 212 96% 78%;--brand-400: 213 94% 68%;--brand-500: 217 91% 60%;--brand-600: 221 83% 53%;--brand-700: 224 76% 48%;--brand-800: 226 71% 40%;--brand-900: 224 64% 33%;--gray-50: 210 20% 98%;--gray-100: 220 14% 96%;--gray-200: 220 13% 91%;--gray-300: 216 12% 84%;--gray-400: 218 11% 65%;--gray-500: 220 9% 46%;--gray-600: 215 14% 34%;--gray-700: 217 19% 27%;--gray-800: 220 26% 18%;--gray-900: 224 39% 11%;--background: var(--gray-50);--background-secondary: var(--gray-100);--background-tertiary: var(--gray-200);--foreground: var(--gray-800);--foreground-secondary: var(--gray-700);--foreground-tertiary: var(--gray-500);--foreground-muted: var(--gray-400);--primary: var(--brand-500);--primary-hover: var(--brand-600);--primary-active: var(--brand-700);--secondary: var(--gray-100);--secondary-hover: var(--gray-200);--secondary-foreground: var(--gray-800);--accent: var(--brand-50);--accent-foreground: var(--brand-700);--muted: var(--gray-100);--muted-foreground: var(--gray-500);--card: 0 0% 100%;--card-foreground: var(--gray-800);--card-border: var(--gray-200);--popover: 0 0% 100%;--popover-foreground: var(--gray-800);--border: var(--gray-200);--border-hover: var(--gray-300);--border-active: var(--brand-500);--input: 0 0% 100%;--input-border: var(--gray-200);--input-focus: var(--brand-500);--ring: var(--brand-500);--ring-offset: var(--gray-50);--shadow-xs: 0 1px 2px 0 rgb(15 23 42 / .04);--shadow-sm: 0 1px 3px 0 rgb(15 23 42 / .06), 0 1px 2px -1px rgb(15 23 42 / .04);--shadow-md: 0 4px 6px -1px rgb(15 23 42 / .06), 0 2px 4px -2px rgb(15 23 42 / .04);--shadow-lg: 0 10px 15px -3px rgb(15 23 42 / .06), 0 4px 6px -4px rgb(15 23 42 / .04);--shadow-xl: 0 20px 25px -5px rgb(15 23 42 / .08), 0 8px 10px -6px rgb(15 23 42 / .04);--shadow-2xl: 0 25px 50px -12px rgb(15 23 42 / .14)}:root{--radius: .75rem}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);overflow:hidden}*{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300)) transparent}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[var\(--z-tooltip\)\]{z-index:var(--z-tooltip)}.m-2{margin:.5rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[17px\]{height:17px}.h-\[180px\]{height:180px}.h-\[22px\]{height:22px}.h-\[2px\]{height:2px}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-\[220px\]{max-height:220px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[42px\]{min-height:42px}.min-h-\[68px\]{min-height:68px}.min-h-\[84px\]{min-height:84px}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[17px\]{width:17px}.w-\[240px\]{width:240px}.w-\[320px\]{width:320px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-20{min-width:5rem}.min-w-\[100px\]{min-width:100px}.min-w-\[180px\]{min-width:180px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[260px\]{min-width:260px}.min-w-\[280px\]{min-width:280px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-\[100px\]{max-width:100px}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[85\%\]{max-width:85%}.max-w-\[88\%\]{max-width:88%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-3{--tw-rotate: -3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate: 3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-45deg\]{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:slideIn .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-se-resize{cursor:se-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-3xl{border-radius:1.5rem}.rounded-\[1\.25rem\]{border-radius:1.25rem}.rounded-\[14px\]{border-radius:14px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[\#dde0ea\]{--tw-border-opacity: 1;border-color:rgb(221 224 234 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-200\/80{border-color:#fde68acc}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-gray-100{border-color:hsl(var(--gray-100))}.border-gray-100\/50{border-color:hsl(var(--gray-100) / .5)}.border-gray-200{border-color:hsl(var(--gray-200))}.border-gray-200\/40{border-color:hsl(var(--gray-200) / .4)}.border-gray-200\/50{border-color:hsl(var(--gray-200) / .5)}.border-gray-200\/60{border-color:hsl(var(--gray-200) / .6)}.border-gray-200\/80{border-color:hsl(var(--gray-200) / .8)}.border-orange-200\/80{border-color:#fed7aacc}.border-primary{border-color:hsl(var(--primary))}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-rose-100{--tw-border-opacity: 1;border-color:rgb(255 228 230 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-100\/40{background-color:#fef3c766}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/60{background-color:#fffbeb99}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/40{background-color:#0006}.bg-card\/40{background-color:hsl(var(--card) / .4)}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-gray-100\/80{background-color:hsl(var(--gray-100) / .8)}.bg-gray-200{background-color:hsl(var(--gray-200))}.bg-gray-200\/80{background-color:hsl(var(--gray-200) / .8)}.bg-gray-300{background-color:hsl(var(--gray-300))}.bg-gray-50\/50{background-color:hsl(var(--gray-50) / .5)}.bg-muted{background-color:hsl(var(--muted))}.bg-orange-50\/70{background-color:#fff7edb3}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-700\/60{background-color:hsl(var(--brand-700) / .6)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.from-gray-300{--tw-gradient-from: hsl(var(--gray-300)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--gray-300) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-50\/60{--tw-gradient-from: hsl(var(--gray-50) / .6) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--gray-50) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-100{--tw-gradient-from: hsl(var(--brand-100)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--brand-100) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-200{--tw-gradient-from: hsl(var(--brand-200)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--brand-200) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-300{--tw-gradient-from: hsl(var(--brand-300)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--brand-300) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-gray-500{--tw-gradient-to: hsl(var(--gray-500)) var(--tw-gradient-to-position)}.to-primary-400{--tw-gradient-to: hsl(var(--brand-400)) var(--tw-gradient-to-position)}.to-primary-500{--tw-gradient-to: hsl(var(--brand-500)) var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to: hsl(var(--brand-600)) var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.to-white\/10{--tw-gradient-to: rgb(255 255 255 / .1) var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-16{padding-bottom:4rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-700\/80{color:#b45309cc}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/90{color:#92400ee6}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-900\/80{color:#78350fcc}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-gray-300{color:hsl(var(--gray-300))}.text-gray-400{color:hsl(var(--gray-400))}.text-gray-500\/90{color:hsl(var(--gray-500) / .9)}.text-gray-700{color:hsl(var(--gray-700))}.text-gray-800{color:hsl(var(--gray-800))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-100{color:hsl(var(--brand-100))}.text-primary-200{color:hsl(var(--brand-200))}.text-primary-300{color:hsl(var(--brand-300))}.text-primary-50{color:hsl(var(--brand-50))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.mix-blend-multiply{mix-blend-mode:multiply}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: 0 1px 2px rgba(0,0,0,.02);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_8px_-2px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow: 0 2px 8px -2px rgba(0,0,0,.02);--tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: var(--shadow-card);--tw-shadow-colored: var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow-color: hsl(var(--card));--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color: #fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200,.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}.duration-slow{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200,.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.duration-slow{animation-duration:.3s}.bg-brand-50{background-color:hsl(var(--brand-50))}.text-brand-600{color:hsl(var(--brand-600))}.bg-gray-50{background-color:hsl(var(--gray-50))}.bg-gray-100{background-color:hsl(var(--gray-100))}.text-gray-500{color:hsl(var(--gray-500))}.text-gray-600{color:hsl(var(--gray-600))}.text-gray-900{color:hsl(var(--gray-900))}.shadow-card{box-shadow:var(--shadow-card)}.custom-scrollbar::-webkit-scrollbar{width:5px;height:5px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300));border-radius:6px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400))}.shadow-card{box-shadow:0 1px 3px -1px #1e140a08,0 1px 2px -1px #1e140a05}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.85}}.animate-fade-in{animation:fadeIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in{animation:slideIn .3s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .3s cubic-bezier(.16,1,.3,1) forwards}.animate-pulse-soft{animation:pulse-soft 3s ease-in-out infinite}.chat-markdown{font-size:.9rem;line-height:1.6;word-break:break-word}.chat-markdown>*+*{margin-top:.5rem}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3{font-size:1rem;font-weight:700}.chat-markdown ul,.chat-markdown ol{padding-left:1.1rem}.chat-markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8rem}.chat-markdown :not(pre)>code{padding:.1rem .3rem;border-radius:.35rem;background:#94a3b82e}.chat-markdown pre{overflow-x:auto;border-radius:.65rem;padding:.65rem .75rem;background:#0f172ae6;color:#e2e8f0}.chat-markdown table{width:100%;border-collapse:collapse;font-size:.8rem}.chat-markdown th,.chat-markdown td{border:1px solid rgba(148,163,184,.3);padding:.35rem .45rem}.chat-markdown blockquote{border-left:3px solid rgba(148,163,184,.55);padding-left:.65rem;color:#1e293bd9}.chat-markdown-user a{color:#dbeafe;text-decoration:underline}.chat-markdown-assistant a{color:hsl(var(--primary));text-decoration:underline}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-400::-moz-placeholder{color:hsl(var(--gray-400))}.placeholder\:text-gray-400::placeholder{color:hsl(var(--gray-400))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-gray-200:hover{border-color:hsl(var(--gray-200))}.hover\:border-gray-200\/80:hover{border-color:hsl(var(--gray-200) / .8)}.hover\:border-gray-300:hover{border-color:hsl(var(--gray-300))}.hover\:border-red-200:hover{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.hover\:border-rose-200:hover{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#e4e7ef\]:hover{--tw-bg-opacity: 1;background-color:rgb(228 231 239 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100\/60:hover{background-color:hsl(var(--gray-100) / .6)}.hover\:bg-gray-100\/80:hover{background-color:hsl(var(--gray-100) / .8)}.hover\:bg-gray-200:hover{background-color:hsl(var(--gray-200))}.hover\:bg-gray-200\/60:hover{background-color:hsl(var(--gray-200) / .6)}.hover\:bg-gray-200\/80:hover{background-color:hsl(var(--gray-200) / .8)}.hover\:bg-gray-300\/80:hover{background-color:hsl(var(--gray-300) / .8)}.hover\:bg-gray-50\/80:hover{background-color:hsl(var(--gray-50) / .8)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:text-gray-700:hover{color:hsl(var(--gray-700))}.hover\:text-gray-800:hover{color:hsl(var(--gray-800))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow: var(--shadow-card-hover);--tw-shadow-colored: var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:bg-gray-50:hover{background-color:hsl(var(--gray-50))}.hover\:bg-gray-100:hover{background-color:hsl(var(--gray-100))}.hover\:text-gray-500:hover{color:hsl(var(--gray-500))}.hover\:text-gray-900:hover{color:hsl(var(--gray-900))}.hover\:shadow-card-hover:hover{box-shadow:var(--shadow-card-hover);box-shadow:0 8px 20px -4px #1e140a0f,0 4px 8px -4px #1e140a08}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary) / .4)}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/30:focus{--tw-ring-color: hsl(var(--primary) / .3)}.focus\:ring-primary\/40:focus{--tw-ring-color: hsl(var(--primary) / .4)}.focus\:bg-gray-100:focus{background-color:hsl(var(--gray-100))}.focus-visible\:bg-white:focus-visible{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color: hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color: #fff}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group\/action:hover .group-hover\/action\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{border-color:hsl(var(--gray-300))}.group:hover .group-hover\:text-gray-800{color:hsl(var(--gray-800))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}@media not all and (min-width:1024px){.max-lg\:w-full{width:100%}.max-lg\:flex-col{flex-direction:column}}@media(min-width:640px){.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[550px\]{max-width:550px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-0{gap:0px}.sm\:gap-3{gap:.75rem}.sm\:text-left{text-align:left}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:9999px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-gray-300\/80::-webkit-scrollbar-thumb{background-color:hsl(var(--gray-300) / .8)}.\[\&\:\:-webkit-scrollbar\]\:w-2::-webkit-scrollbar{width:.5rem}.\[\&\>\:last-child\]\:hidden>:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DocBrowser-BY90Lf6L.js","assets/vendor-H2M3a_4Z.js","assets/ModelConfig-Dga1Ko7_.js","assets/page-layout-CLgr0qym.js","assets/card-D3dD-I5t.js","assets/useConfig-R5uGhZtD.js","assets/label-CJIvvG6o.js","assets/config-hints-CApS3K_7.js","assets/ChatPage-DidO_pAN.js","assets/useConfirmDialog-AMeSTA83.js","assets/dialog-DZ0VC-RD.js","assets/chat-message-DZV2Z5oc.js","assets/ProvidersList-DvCoBTrT.js","assets/tabs-custom-D4Gs3BGM.js","assets/action-link-DLZDwUfD.js","assets/ChannelsList-AKnD2r1L.js","assets/switch-C-0Q8OH2.js","assets/RuntimeConfig-2aqBJ6Xn.js","assets/SessionsConfig-CN2WymbH.js","assets/CronConfig-C1pm-oKA.js","assets/SecretsConfig-wlnh__z0.js","assets/MarketplacePage-BRtmhP3G.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as xe,c as ye,r as a,j as n,T as ee,I as we,C as ne,S as te,a as Se,b as se,P as be,d as ae,V as ke,L as oe,e as re,f as Pe,g as ve,h as Ce,i as ie,R as Ie,k as Te,M as Ae,l as De,m as Le,n as je,G as Ee,H as Ne,A as Me,K as Re,o as Ue,B as _e,N as Oe,p as Be,q as Fe,s as He,u as Ve,Q as $e,v as We,w as Ge,x as Ke,y as z,z as D,$ as qe,D as Je,E as Ye}from"./vendor-H2M3a_4Z.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const c of r)if(c.type==="childList")for(const l of c.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function s(r){const c={};return r.integrity&&(c.integrity=r.integrity),r.referrerPolicy&&(c.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?c.credentials="include":r.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(r){if(r.ep)return;r.ep=!0;const c=s(r);fetch(r.href,c)}})();const Qe="modulepreload",Xe=function(e){return"/"+e},W={},w=function(t,s,o){let r=Promise.resolve();if(s&&s.length>0){let l=function(g){return Promise.all(g.map(f=>Promise.resolve(f).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),k=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));r=l(s.map(g=>{if(g=Xe(g),g in W)return;W[g]=!0;const f=g.endsWith(".css"),x=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${x}`))return;const i=document.createElement("link");if(i.rel=f?"stylesheet":Qe,f||(i.as="script"),i.crossOrigin="",i.href=g,k&&i.setAttribute("nonce",k),document.head.appendChild(i),f)return new Promise((v,h)=>{i.addEventListener("load",v),i.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${g}`)))})}))}function c(l){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=l,window.dispatchEvent(d),!d.defaultPrevented)throw l}return r.then(l=>{for(const d of l||[])d.status==="rejected"&&c(d.reason);return t().catch(c)})};function y(...e){return xe(ye(e))}const le="nextclaw.ui.language",G=[{value:"en",label:"English"},{value:"zh",label:"中文"}],Ze={en:"en-US",zh:"zh-CN"};let C="en",j=!1;const E=new Set;function en(e){return e==="en"||e==="zh"}function nn(){var t;return typeof navigator>"u"?"en":(((t=navigator.language)==null?void 0:t.toLowerCase())??"en").startsWith("zh")?"zh":"en"}function tn(){if(typeof window>"u")return"en";try{const e=window.localStorage.getItem(le);if(en(e))return e}catch{}return nn()}function F(){return j||(C=tn(),j=!0),C}function P(){return j?C:F()}function sn(e){if(F(),C!==e){if(C=e,typeof window<"u")try{window.localStorage.setItem(le,e)}catch{}E.forEach(t=>t(e))}}function an(e){return E.add(e),()=>{E.delete(e)}}function H(e=P()){return Ze[e]}function Fn(e,t=P()){if(!e)return"-";const s=e instanceof Date?e:new Date(e);return Number.isNaN(s.getTime())?typeof e=="string"?e:"-":s.toLocaleString(H(t))}function Hn(e,t=P()){if(!e)return"-";const s=e instanceof Date?e:new Date(e);return Number.isNaN(s.getTime())?typeof e=="string"?e:"-":new Intl.DateTimeFormat(H(t),{year:"numeric",month:"2-digit",day:"2-digit"}).format(s)}function Vn(e,t=P()){return new Intl.NumberFormat(H(t)).format(e)}const K={chat:{zh:"对话",en:"Chat"},model:{zh:"模型",en:"Model"},providers:{zh:"提供商",en:"Providers"},channels:{zh:"渠道",en:"Channels"},cron:{zh:"定时任务",en:"Cron Jobs"},secrets:{zh:"密钥管理",en:"Secrets"},runtime:{zh:"路由与运行时",en:"Routing & Runtime"},marketplace:{zh:"市场",en:"Marketplace"},enabled:{zh:"启用",en:"Enabled"},disabled:{zh:"禁用",en:"Disabled"},save:{zh:"保存",en:"Save"},cancel:{zh:"取消",en:"Cancel"},delete:{zh:"删除",en:"Delete"},add:{zh:"添加",en:"Add"},edit:{zh:"编辑",en:"Edit"},loading:{zh:"加载中...",en:"Loading..."},success:{zh:"成功",en:"Success"},error:{zh:"错误",en:"Error"},confirm:{zh:"确认",en:"Confirm"},unchanged:{zh:"未修改",en:"Unchanged"},saving:{zh:"保存中...",en:"Saving..."},remove:{zh:"移除",en:"Remove"},all:{zh:"全部",en:"All"},prev:{zh:"上一页",en:"Prev"},next:{zh:"下一页",en:"Next"},noneOption:{zh:"无",en:"None"},language:{zh:"语言",en:"Language"},theme:{zh:"主题",en:"Theme"},themeWarm:{zh:"暖色",en:"Warm"},themeCool:{zh:"冷色",en:"Cool"},isRequired:{zh:"必填",en:"is required"},duplicate:{zh:"重复",en:"duplicate"},notFound:{zh:"未找到",en:"not found"},modelPageTitle:{zh:"模型配置",en:"Model Configuration"},modelPageDescription:{zh:"配置默认 AI 模型和运行参数限制",en:"Configure default AI model and runtime limits"},defaultModel:{zh:"默认模型",en:"Default Model"},workspace:{zh:"工作空间",en:"Workspace"},generationParameters:{zh:"生成参数",en:"Generation Parameters"},modelName:{zh:"模型",en:"Model"},maxTokens:{zh:"最大 Token 数",en:"Max Tokens"},maxToolIterations:{zh:"最大工具迭代次数",en:"Max Tool Iterations"},saveChanges:{zh:"保存变更",en:"Save Changes"},providersPageTitle:{zh:"AI 提供商",en:"AI Providers"},providersLoading:{zh:"加载中...",en:"Loading..."},providersTabConfigured:{zh:"已配置",en:"Configured"},providersTabAll:{zh:"全部提供商",en:"All Providers"},providersDefaultDescription:{zh:"为你的 Agent 配置 AI 服务",en:"Configure AI services for your agents"},providersEmptyTitle:{zh:"尚未配置提供商",en:"No providers configured"},providersEmptyDescription:{zh:"添加一个 AI 提供商后即可开始使用。",en:"Add an AI provider to start using the platform."},apiKey:{zh:"API 密钥",en:"API Key"},apiBase:{zh:"API Base",en:"API Base"},extraHeaders:{zh:"额外请求头",en:"Extra Headers"},wireApi:{zh:"请求接口",en:"Wire API"},wireApiAuto:{zh:"自动(优先 Chat,必要时 Responses)",en:"Auto (Chat with fallback)"},wireApiChat:{zh:"Chat Completions",en:"Chat Completions"},wireApiResponses:{zh:"Responses",en:"Responses"},apiKeySet:{zh:"已设置",en:"Set"},apiKeyNotSet:{zh:"未设置",en:"Not Set"},showKey:{zh:"显示密钥",en:"Show Key"},hideKey:{zh:"隐藏密钥",en:"Hide Key"},providerFormDescription:{zh:"配置 AI 提供商的 API 密钥与参数",en:"Configure API keys and parameters for AI provider"},enterApiKey:{zh:"请输入 API 密钥",en:"Enter API Key"},leaveBlankToKeepUnchanged:{zh:"留空则保持不变",en:"Leave blank to keep unchanged"},channelsPageTitle:{zh:"消息渠道",en:"Message Channels"},channelsLoading:{zh:"加载渠道中...",en:"Loading channels..."},channelsTabEnabled:{zh:"已启用",en:"Enabled"},channelsTabAll:{zh:"全部渠道",en:"All Channels"},channelsEmptyTitle:{zh:"暂无启用渠道",en:"No channels enabled"},channelsEmptyDescription:{zh:"启用一个消息渠道以开始接收消息。",en:"Enable a messaging channel to start receiving messages."},channelDescriptionDefault:{zh:"配置该通信渠道",en:"Configure this communication channel"},channelDescTelegram:{zh:"连接 Telegram 机器人以进行即时消息收发",en:"Connect with Telegram bots for instant messaging"},channelDescSlack:{zh:"接入 Slack 工作区进行团队协作消息处理",en:"Integrate with Slack workspaces for team collaboration"},channelDescEmail:{zh:"通过邮件协议收发消息",en:"Send and receive messages via email protocols"},channelDescWebhook:{zh:"接收 HTTP Webhook 以支持自定义集成",en:"Receive HTTP webhooks for custom integrations"},channelDescDiscord:{zh:"将 Discord 机器人连接到你的社区服务器",en:"Connect Discord bots to your community servers"},channelDescFeishu:{zh:"企业消息与协作平台接入",en:"Enterprise messaging and collaboration platform"},configureMessageChannelParameters:{zh:"配置消息渠道参数",en:"Configure message channel parameters"},channelsGuideTitle:{zh:"查看指南",en:"View Guide"},allowFrom:{zh:"允许来源",en:"Allow From"},token:{zh:"Token",en:"Token"},botToken:{zh:"Bot Token",en:"Bot Token"},appToken:{zh:"App Token",en:"App Token"},appId:{zh:"App ID",en:"App ID"},corpId:{zh:"企业 ID",en:"Corp ID"},agentId:{zh:"应用 Agent ID",en:"Agent ID"},appSecret:{zh:"App Secret",en:"App Secret"},markdownSupport:{zh:"Markdown 支持",en:"Markdown Support"},clientId:{zh:"Client ID",en:"Client ID"},clientSecret:{zh:"Client Secret",en:"Client Secret"},encryptKey:{zh:"加密密钥",en:"Encrypt Key"},verificationToken:{zh:"验证令牌",en:"Verification Token"},bridgeUrl:{zh:"桥接 URL",en:"Bridge URL"},gatewayUrl:{zh:"网关 URL",en:"Gateway URL"},proxy:{zh:"代理",en:"Proxy"},intents:{zh:"Intents",en:"Intents"},mode:{zh:"模式",en:"Mode"},webhookPath:{zh:"Webhook 路径",en:"Webhook Path"},callbackPort:{zh:"回调端口",en:"Callback Port"},callbackPath:{zh:"回调路径",en:"Callback Path"},groupPolicy:{zh:"群组策略",en:"Group Policy"},consentGranted:{zh:"同意条款",en:"Consent Granted"},imapHost:{zh:"IMAP 服务器",en:"IMAP Host"},imapPort:{zh:"IMAP 端口",en:"IMAP Port"},imapUsername:{zh:"IMAP 用户名",en:"IMAP Username"},imapPassword:{zh:"IMAP 密码",en:"IMAP Password"},imapMailbox:{zh:"IMAP 邮箱",en:"IMAP Mailbox"},imapUseSsl:{zh:"IMAP 使用 SSL",en:"IMAP Use SSL"},smtpHost:{zh:"SMTP 服务器",en:"SMTP Host"},smtpPort:{zh:"SMTP 端口",en:"SMTP Port"},smtpUsername:{zh:"SMTP 用户名",en:"SMTP Username"},smtpPassword:{zh:"SMTP 密码",en:"SMTP Password"},smtpUseTls:{zh:"SMTP 使用 TLS",en:"SMTP Use TLS"},smtpUseSsl:{zh:"SMTP 使用 SSL",en:"SMTP Use SSL"},fromAddress:{zh:"发件地址",en:"From Address"},autoReplyEnabled:{zh:"自动回复已启用",en:"Auto Reply Enabled"},pollIntervalSeconds:{zh:"轮询间隔(秒)",en:"Poll Interval (s)"},markSeen:{zh:"标记为已读",en:"Mark Seen"},maxBodyChars:{zh:"最大正文字符数",en:"Max Body Chars"},subjectPrefix:{zh:"主题前缀",en:"Subject Prefix"},baseUrl:{zh:"Base URL",en:"Base URL"},socketUrl:{zh:"Socket URL",en:"Socket URL"},socketPath:{zh:"Socket 路径",en:"Socket Path"},socketDisableMsgpack:{zh:"禁用 Msgpack",en:"Disable Msgpack"},socketReconnectDelayMs:{zh:"重连延迟(ms)",en:"Reconnect Delay (ms)"},socketMaxReconnectDelayMs:{zh:"最大重连延迟(ms)",en:"Max Reconnect Delay (ms)"},socketConnectTimeoutMs:{zh:"连接超时(ms)",en:"Connect Timeout (ms)"},refreshIntervalMs:{zh:"刷新间隔(ms)",en:"Refresh Interval (ms)"},watchTimeoutMs:{zh:"监视超时(ms)",en:"Watch Timeout (ms)"},watchLimit:{zh:"监视限制",en:"Watch Limit"},retryDelayMs:{zh:"重试延迟(ms)",en:"Retry Delay (ms)"},maxRetryAttempts:{zh:"最大重试次数",en:"Max Retry Attempts"},clawToken:{zh:"Claw Token",en:"Claw Token"},agentUserId:{zh:"代理用户ID",en:"Agent User ID"},sessions:{zh:"会话",en:"Sessions"},panels:{zh:"面板",en:"Panels"},mentionRequireInGroups:{zh:"群组中需要@",en:"Require Mention in Groups"},groups:{zh:"群组",en:"Groups"},replyDelayMode:{zh:"回复延迟模式",en:"Reply Delay Mode"},replyDelayMs:{zh:"回复延迟(ms)",en:"Reply Delay (ms)"},secret:{zh:"密钥",en:"Secret"},accountId:{zh:"账号 ID",en:"Account ID"},dmPolicy:{zh:"私聊策略",en:"DM Policy"},groupAllowFrom:{zh:"群组允许来源",en:"Group Allow From"},requireMention:{zh:"需要 @ 提及",en:"Require Mention"},mentionPatterns:{zh:"提及匹配规则",en:"Mention Patterns"},groupRulesJson:{zh:"群组规则(JSON)",en:"Group Rules (JSON)"},allowBotMessages:{zh:"允许机器人消息",en:"Allow Bot Messages"},attachmentMaxSizeMb:{zh:"附件最大体积(MB)",en:"Attachment Max Size (MB)"},streamingMode:{zh:"流式模式",en:"Streaming Mode"},draftChunkingJson:{zh:"草稿分块(JSON)",en:"Draft Chunking (JSON)"},textChunkLimit:{zh:"文本分块上限",en:"Text Chunk Limit"},invalidJson:{zh:"JSON 格式无效",en:"Invalid JSON"},runtimePageTitle:{zh:"路由与运行时",en:"Routing & Runtime"},runtimePageDescription:{zh:"对齐 OpenClaw 的多 Agent 路由:绑定规则、Agent 池、私聊范围。",en:"Align multi-agent routing with OpenClaw: bindings, agent pool, and DM scope."},runtimeLoading:{zh:"加载运行时配置中...",en:"Loading runtime settings..."},dmScope:{zh:"私聊范围",en:"DM Scope"},dmScopeHelp:{zh:"控制私聊会话如何隔离。",en:"Control how direct-message sessions are isolated."},defaultContextTokens:{zh:"默认上下文 Token",en:"Default Context Tokens"},defaultContextTokensHelp:{zh:"当 Agent 未设置单独值时使用该上下文预算。",en:"Input context budget for agents when no per-agent override is set."},maxPingPongTurns:{zh:"最大乒乓轮次",en:"Max Ping-Pong Turns"},maxPingPongTurnsHelp:{zh:"设为 0 可阻止 Agent 间自动 ping-pong。",en:"Set to 0 to block automatic agent-to-agent ping-pong loops."},agentList:{zh:"Agent 列表",en:"Agent List"},agentListHelp:{zh:"在同一个网关进程中运行多个固定角色 Agent。",en:"Run multiple fixed-role agents in one gateway process."},bindings:{zh:"绑定规则",en:"Bindings"},bindingsHelp:{zh:"根据渠道 + 账号 + 对端将入站消息路由到目标 Agent。",en:"Route inbound message by channel + account + peer to target agent."},agentIdRequiredError:{zh:"agents.list[{index}].id 必填",en:"agents.list[{index}].id is required"},duplicateAgentId:{zh:"重复的 agent id",en:"Duplicate agent id"},bindingAgentIdRequired:{zh:"bindings[{index}].agentId 必填",en:"bindings[{index}].agentId is required"},bindingAgentIdNotFound:{zh:"bindings[{index}].agentId 未在 agents.list/main 中找到",en:"bindings[{index}].agentId not found in agents.list/main"},bindingChannelRequired:{zh:"bindings[{index}].match.channel 必填",en:"bindings[{index}].match.channel is required"},bindingPeerIdRequired:{zh:"设置 peer.kind 时,bindings[{index}].match.peer.id 必填",en:"bindings[{index}].match.peer.id is required when peer.kind is set"},agentIdPlaceholder:{zh:"Agent ID(例如 engineer)",en:"Agent ID (e.g. engineer)"},workspaceOverridePlaceholder:{zh:"工作空间覆盖(可选)",en:"Workspace override (optional)"},modelOverridePlaceholder:{zh:"模型覆盖(可选)",en:"Model override (optional)"},maxTokensPlaceholder:{zh:"最大 tokens",en:"Max tokens"},contextTokensPlaceholder:{zh:"上下文 tokens",en:"Context tokens"},maxToolsPlaceholder:{zh:"最大工具次数",en:"Max tools"},defaultAgent:{zh:"默认 Agent",en:"Default agent"},addAgent:{zh:"添加 Agent",en:"Add Agent"},targetAgentIdPlaceholder:{zh:"目标 Agent ID",en:"Target agent ID"},channelPlaceholder:{zh:"渠道(例如 discord)",en:"Channel (e.g. discord)"},accountIdOptionalPlaceholder:{zh:"账号 ID(可选)",en:"Account ID (optional)"},peerKindOptional:{zh:"对端类型(可选)",en:"Peer kind (optional)"},peerIdPlaceholder:{zh:"对端 ID(需先设置对端类型)",en:"Peer ID (requires peer kind)"},addBinding:{zh:"添加绑定",en:"Add Binding"},saveRuntimeSettings:{zh:"保存运行时设置",en:"Save Runtime Settings"},secretsPageTitle:{zh:"密钥管理",en:"Secrets Management"},secretsPageDescription:{zh:"集中管理 secrets.providers、secrets.defaults 与 secrets.refs。",en:"Manage secrets.providers, secrets.defaults, and secrets.refs in one place."},secretsEnabledHelp:{zh:"关闭后不会解析 `{{secret:*}}` 引用。",en:"When disabled, `{{secret:*}}` refs are not resolved."},defaultEnvProvider:{zh:"默认 Env 提供器",en:"Default Env Provider"},defaultFileProvider:{zh:"默认 File 提供器",en:"Default File Provider"},defaultExecProvider:{zh:"默认 Exec 提供器",en:"Default Exec Provider"},secretProvidersTitle:{zh:"Secret Providers",en:"Secret Providers"},secretProvidersDescription:{zh:"定义可复用的 secrets provider(env/file/exec)。",en:"Define reusable secret providers (env/file/exec)."},providerAlias:{zh:"提供器别名",en:"Provider Alias"},removeProvider:{zh:"移除提供器",en:"Remove Provider"},envPrefix:{zh:"环境变量前缀",en:"Environment Prefix"},secretFilePath:{zh:"Secrets 文件路径",en:"Secrets File Path"},secretExecCommand:{zh:"执行命令",en:"Exec Command"},secretExecArgs:{zh:"命令参数(每行一个)",en:"Exec Args (one per line)"},secretExecCwd:{zh:"执行目录(可选)",en:"Exec Working Directory (optional)"},secretExecTimeoutMs:{zh:"超时(毫秒)",en:"Timeout (ms)"},addSecretProvider:{zh:"添加 Provider",en:"Add Provider"},secretRefsTitle:{zh:"Secret Refs",en:"Secret Refs"},secretRefsDescription:{zh:"把配置路径映射到 secret 引用(source/provider/id)。",en:"Map config paths to secret refs (source/provider/id)."},secretConfigPath:{zh:"配置路径",en:"Config Path"},secretId:{zh:"Secret ID",en:"Secret ID"},secretProviderAlias:{zh:"Provider 别名",en:"Provider Alias"},addSecretRef:{zh:"添加 Ref",en:"Add Ref"},sessionsPageTitle:{zh:"会话管理",en:"Sessions"},sessionsPageDescription:{zh:"管理会话:筛选、按渠道分组、查看历史、改标签/偏好模型、清空和删除。",en:"Manage sessions: filter, group by channel, inspect history, edit metadata, clear, and delete."},sessionsFiltersTitle:{zh:"筛选",en:"Filters"},sessionsFiltersDescription:{zh:"按关键词、活跃窗口和分组方式筛选会话。",en:"Filter sessions by query, activity window, and grouping mode."},sessionsSearchPlaceholder:{zh:"搜索 key 或标签",en:"Search session key or label"},sessionsActiveMinutesPlaceholder:{zh:"活跃分钟(0=不限)",en:"Active minutes (0 = no limit)"},sessionsLimitPlaceholder:{zh:"展示上限",en:"Limit"},sessionsGroupModeLabel:{zh:"分组方式",en:"Grouping"},sessionsGroupModeAll:{zh:"不分组 / 全部",en:"All (No grouping)"},sessionsGroupModeByChannel:{zh:"按渠道分组",en:"Group by channel"},sessionsListTitle:{zh:"会话列表",en:"Session list"},sessionsTotalLabel:{zh:"总数",en:"Total"},sessionsCurrentLabel:{zh:"当前展示",en:"Showing"},sessionsLoading:{zh:"加载会话中...",en:"Loading sessions..."},sessionsEmpty:{zh:"暂无会话。",en:"No sessions yet."},sessionsKeyLabel:{zh:"键",en:"Key"},sessionsChannelLabel:{zh:"渠道",en:"Channel"},sessionsMessagesLabel:{zh:"消息数",en:"Messages"},sessionsUpdatedLabel:{zh:"更新时间",en:"Updated"},sessionsLastRoleLabel:{zh:"最后角色",en:"Last Role"},sessionsLabelPlaceholder:{zh:"会话标签(可选)",en:"Session label (optional)"},sessionsModelPlaceholder:{zh:"偏好模型(可选)",en:"Preferred model (optional)"},sessionsShowHistory:{zh:"查看历史",en:"View history"},sessionsHideHistory:{zh:"隐藏历史",en:"Hide history"},sessionsSaveMeta:{zh:"保存元信息",en:"Save metadata"},sessionsClearHistory:{zh:"清空历史",en:"Clear history"},sessionsDeleteConfirm:{zh:"确认删除会话",en:"Delete session"},sessionsHistoryTitle:{zh:"历史",en:"History"},sessionsHistoryDescription:{zh:"最近 200 条消息(展示窗口)。",en:"Latest 200 messages (display window)."},sessionsHistoryLoading:{zh:"加载历史中...",en:"Loading history..."},sessionsApplyingChanges:{zh:"正在应用会话变更...",en:"Applying session changes..."},sessionsUnknownChannel:{zh:"未知渠道",en:"Unknown channel"},sessionsAllChannels:{zh:"全部渠道",en:"All Channels"},sessionsMetadata:{zh:"元信息",en:"Metadata"},sessionsNoSelectionTitle:{zh:"未选择会话",en:"No Session Selected"},sessionsNoSelectionDescription:{zh:"从左侧列表选择一个会话以查看聊天历史并配置其元信息。",en:"Select a session from the list on the left to view its chat history and configure its metadata."},chatPageTitle:{zh:"Agent 对话",en:"Agent Chat"},chatPageDescription:{zh:"在 UI 内直接与 Agent 交互,支持多会话与多 Agent 切换。",en:"Chat with your agent directly in UI with multi-session and multi-agent switching."},chatRefresh:{zh:"刷新",en:"Refresh"},chatNewSession:{zh:"新会话",en:"New Session"},chatSearchSessionPlaceholder:{zh:"搜索会话 key / 标签",en:"Search session key / label"},chatAgentLabel:{zh:"目标 Agent",en:"Target Agent"},chatSelectAgent:{zh:"选择 Agent",en:"Select Agent"},chatSessionLabel:{zh:"当前会话",en:"Current Session"},chatNoSession:{zh:"未选择会话",en:"No session selected"},chatNoSessionHint:{zh:"创建一个会话并发送第一条消息。",en:"Create a session and send your first message."},chatHistoryLoading:{zh:"加载会话历史中...",en:"Loading session history..."},chatNoMessages:{zh:"暂无消息,发送一条开始对话。",en:"No messages yet. Send one to start."},chatTyping:{zh:"Agent 正在思考...",en:"Agent is thinking..."},chatInputPlaceholder:{zh:"输入消息,Enter 发送,Shift + Enter 换行",en:"Type a message, Enter to send, Shift + Enter for newline"},chatInputHint:{zh:"支持多轮上下文,默认走当前会话。",en:"Multi-turn context is preserved in the current session."},chatSend:{zh:"发送",en:"Send"},chatSending:{zh:"发送中...",en:"Sending..."},chatDeleteSession:{zh:"删除会话",en:"Delete Session"},chatDeleteSessionConfirm:{zh:"确认删除当前会话?",en:"Delete the current session?"},chatSendFailed:{zh:"发送消息失败",en:"Failed to send message"},chatRoleUser:{zh:"你",en:"You"},chatRoleAssistant:{zh:"助手",en:"Assistant"},chatRoleTool:{zh:"工具",en:"Tool"},chatRoleSystem:{zh:"系统",en:"System"},chatRoleMessage:{zh:"消息",en:"Message"},chatToolCall:{zh:"工具调用",en:"Tool Call"},chatToolResult:{zh:"工具结果",en:"Tool Result"},chatToolOutput:{zh:"查看输出",en:"View Output"},chatToolNoOutput:{zh:"无输出(执行完成)",en:"No output (completed)"},chatReasoning:{zh:"查看推理内容",en:"Show reasoning"},cronPageTitle:{zh:"定时任务",en:"Cron Jobs"},cronPageDescription:{zh:"查看与删除定时任务,关注执行时间与状态。",en:"View and delete cron jobs, track schedule and status."},cronSearchPlaceholder:{zh:"搜索名称 / 消息 / ID",en:"Search name / message / ID"},cronStatusLabel:{zh:"状态",en:"Status"},cronStatusAll:{zh:"全部",en:"All"},cronStatusEnabled:{zh:"仅启用",en:"Enabled"},cronStatusDisabled:{zh:"仅禁用",en:"Disabled"},cronTotalLabel:{zh:"总数",en:"Total"},cronLoading:{zh:"加载定时任务中...",en:"Loading cron jobs..."},cronEmpty:{zh:"暂无定时任务。",en:"No cron jobs yet."},cronScheduleLabel:{zh:"计划",en:"Schedule"},cronDeliverTo:{zh:"投递到",en:"Deliver to"},cronNextRun:{zh:"下次执行",en:"Next run"},cronLastRun:{zh:"上次执行",en:"Last run"},cronLastStatus:{zh:"上次状态",en:"Last status"},cronDeleteConfirm:{zh:"确认删除定时任务",en:"Delete cron job"},cronOneShot:{zh:"一次性",en:"One-shot"},cronEnable:{zh:"启用",en:"Enable"},cronDisable:{zh:"禁用",en:"Disable"},cronRunNow:{zh:"立即执行",en:"Run now"},cronEnableConfirm:{zh:"确认启用定时任务",en:"Enable cron job"},cronDisableConfirm:{zh:"确认禁用定时任务",en:"Disable cron job"},cronRunConfirm:{zh:"确认立即执行定时任务",en:"Run cron job now"},cronRunForceConfirm:{zh:"任务已禁用,仍要立即执行",en:"Cron job disabled. Force run now"},marketplacePluginsPageTitle:{zh:"插件市场",en:"Plugin Marketplace"},marketplacePluginsPageDescription:{zh:"安装、启用与管理插件。",en:"Install, enable, and manage plugins."},marketplaceSkillsPageTitle:{zh:"技能市场",en:"Skill Marketplace"},marketplaceSkillsPageDescription:{zh:"安装与管理技能。",en:"Install and manage skills."},marketplaceTabMarketplacePlugins:{zh:"插件市场",en:"Plugin Market"},marketplaceTabMarketplaceSkills:{zh:"技能市场",en:"Skill Market"},marketplaceTabInstalledPlugins:{zh:"已安装插件",en:"Installed Plugins"},marketplaceTabInstalledSkills:{zh:"已安装技能",en:"Installed Skills"},marketplaceSearchPlaceholderPlugins:{zh:"搜索插件...",en:"Search plugins..."},marketplaceSearchPlaceholderSkills:{zh:"搜索技能...",en:"Search skills..."},marketplaceFilterPlugins:{zh:"插件",en:"Plugins"},marketplaceFilterSkills:{zh:"技能",en:"Skills"},marketplaceSortRelevance:{zh:"相关性",en:"Relevance"},marketplaceSortUpdated:{zh:"最近更新",en:"Recently Updated"},marketplaceUnknownItem:{zh:"未知项目",en:"Unknown Item"},marketplaceInstalledLocalSummary:{zh:"已在本地安装,市场暂无详情。",en:"Installed locally. Details are currently unavailable from marketplace."},marketplaceTypePlugin:{zh:"插件",en:"Plugin"},marketplaceTypeSkill:{zh:"技能",en:"Skill"},marketplaceTypeExtension:{zh:"扩展",en:"Extension"},marketplaceInstall:{zh:"安装",en:"Install"},marketplaceInstalling:{zh:"安装中...",en:"Installing..."},marketplaceEnable:{zh:"启用",en:"Enable"},marketplaceDisable:{zh:"禁用",en:"Disable"},marketplaceEnabling:{zh:"启用中...",en:"Enabling..."},marketplaceDisabling:{zh:"禁用中...",en:"Disabling..."},marketplaceUninstall:{zh:"卸载",en:"Uninstall"},marketplaceRemoving:{zh:"卸载中...",en:"Removing..."},marketplaceSectionPlugins:{zh:"插件列表",en:"Plugin Catalog"},marketplaceSectionSkills:{zh:"技能列表",en:"Skill Catalog"},marketplaceSectionInstalledPlugins:{zh:"已安装插件",en:"Installed Plugins"},marketplaceSectionInstalledSkills:{zh:"已安装技能",en:"Installed Skills"},marketplaceErrorLoadingPluginsData:{zh:"加载插件市场数据失败",en:"Failed to load plugin marketplace data"},marketplaceErrorLoadingSkillsData:{zh:"加载技能市场数据失败",en:"Failed to load skill marketplace data"},marketplaceErrorLoadingInstalledPlugins:{zh:"加载已安装插件失败",en:"Failed to load installed plugins"},marketplaceErrorLoadingInstalledSkills:{zh:"加载已安装技能失败",en:"Failed to load installed skills"},marketplaceNoPlugins:{zh:"未找到插件。",en:"No plugins found."},marketplaceNoSkills:{zh:"未找到技能。",en:"No skills found."},marketplaceNoInstalledPlugins:{zh:"未找到已安装插件。",en:"No installed plugins found."},marketplaceNoInstalledSkills:{zh:"未找到已安装技能。",en:"No installed skills found."},marketplaceUninstallTitle:{zh:"确认卸载",en:"Uninstall"},marketplaceUninstallDescription:{zh:"该操作会移除扩展,后续可在市场中重新安装。",en:"This will remove the extension. You can install it again from the marketplace."},marketplaceInstallSuccessPlugin:{zh:"插件安装成功",en:"Plugin installed successfully"},marketplaceInstallSuccessSkill:{zh:"技能安装成功",en:"Skill installed successfully"},marketplaceEnableSuccess:{zh:"启用成功",en:"Enabled successfully"},marketplaceDisableSuccess:{zh:"禁用成功",en:"Disabled successfully"},marketplaceUninstallSuccess:{zh:"卸载成功",en:"Uninstalled successfully"},marketplaceInstallFailed:{zh:"安装失败",en:"Install failed"},marketplaceOperationFailed:{zh:"操作失败",en:"Operation failed"},marketplaceInstalledPluginsCountSuffix:{zh:"个已安装插件",en:"installed plugins"},marketplaceInstalledSkillsCountSuffix:{zh:"个已安装技能",en:"installed skills"},connected:{zh:"已连接",en:"Connected"},disconnected:{zh:"未连接",en:"Disconnected"},connecting:{zh:"连接中...",en:"Connecting..."},feishuConnecting:{zh:"验证 / 连接中...",en:"Verifying / connecting..."},statusReady:{zh:"就绪",en:"Ready"},statusSetup:{zh:"待配置",en:"Setup"},statusActive:{zh:"活跃",en:"Active"},statusInactive:{zh:"未启用",en:"Inactive"},actionConfigure:{zh:"配置",en:"Configure"},actionAddProvider:{zh:"添加提供商",en:"Add Provider"},actionEnable:{zh:"启用",en:"Enable"},configSaved:{zh:"配置已保存",en:"Configuration saved"},configSavedApplied:{zh:"配置已保存并已应用",en:"Configuration saved and applied"},configSaveFailed:{zh:"保存配置失败",en:"Failed to save configuration"},configReloaded:{zh:"配置已重载",en:"Configuration reloaded"},configReloadFailed:{zh:"重载配置失败",en:"Failed to reload configuration"},feishuVerifySuccess:{zh:"验证成功,请到飞书开放平台完成事件订阅与发布后再开始使用。",en:"Verified. Please finish Feishu event subscription and app publishing before using."},feishuVerifyFailed:{zh:"验证失败",en:"Verification failed"},enterTag:{zh:"输入后按回车...",en:"Type and press Enter..."},headerName:{zh:"Header 名称",en:"Header Name"},headerValue:{zh:"Header 值",en:"Header Value"},docBrowserTitle:{zh:"帮助文档",en:"Help Docs"},docBrowserSearchPlaceholder:{zh:"搜索,也可以输入文档地址直接打开",en:"Search, or enter a doc URL to open"},docBrowserUrlPlaceholder:{zh:"输入文档路径,如 /guide/channels",en:"Enter a doc path, e.g. /guide/channels"},docBrowserOpenExternal:{zh:"文档中心打开",en:"Open in Docs"},docBrowserFloatMode:{zh:"悬浮窗口",en:"Float Window"},docBrowserDockMode:{zh:"固定到侧栏",en:"Dock to Sidebar"},docBrowserClose:{zh:"关闭",en:"Close"},docBrowserHelp:{zh:"帮助文档",en:"Help Docs"}};function m(e,t=P()){var s,o;return((s=K[e])==null?void 0:s[t])||((o=K[e])==null?void 0:o.en)||e}const ce="nextclaw.ui.theme",q=[{value:"warm",labelKey:"themeWarm"},{value:"cool",labelKey:"themeCool"}];let b="warm",N=!1;const M=new Set;function on(e){return e==="warm"||e==="cool"}function he(e){typeof document>"u"||document.documentElement.setAttribute("data-theme",e)}function rn(){if(typeof window>"u")return"warm";try{const e=window.localStorage.getItem(ce);if(on(e))return e}catch{}return"warm"}function V(){return N||(b=rn(),he(b),N=!0),b}function ln(){return N?b:V()}function cn(e){if(V(),e!==b){if(b=e,he(b),typeof window<"u")try{window.localStorage.setItem(ce,b)}catch{}M.forEach(t=>t(b))}}function hn(e){return M.add(e),()=>{M.delete(e)}}const R="docs.nextclaw.io",J="nextclaw-docs.pages.dev",de=new Set([R,`www.${R}`,J,`www.${J}`]),Y=`https://${R}`,ue="/guide/getting-started";function I(e){try{return new URL(e).pathname.replace(/\.html$/,"").replace(/\/$/,"")}catch{return e}}function dn(e){return e==="zh"?"zh":"en"}function un(e,t){const s=e.startsWith("/")?e:`/${e}`;return s==="/"||s===""?`/${t}/`:/^\/(en|zh)(\/|$)/.test(s)?s:`/${t}${s}`}function U(e){const t=dn(P());try{const s=new URL(e,Y);return de.has(s.hostname)&&(s.pathname=un(s.pathname,t)),s.toString()}catch{return new URL(`/${t}${ue}`,Y).toString()}}function L(){return U(ue)}const me=a.createContext(null);function $(){const e=a.useContext(me);if(!e)throw new Error("useDocBrowser must be used within DocBrowserProvider");return e}function mn(e){try{const t=new URL(e,window.location.origin);return de.has(t.hostname)}catch{return!1}}function gn({children:e}){const[t,s]=a.useState({isOpen:!1,mode:"docked",currentUrl:L(),history:[L()],historyIndex:0,navVersion:0}),o=a.useCallback(h=>{const u=U(h||t.currentUrl||L());s(p=>({...p,isOpen:!0,currentUrl:u,history:[...p.history.slice(0,p.historyIndex+1),u],historyIndex:p.historyIndex+1,navVersion:p.navVersion+1}))},[t.currentUrl]),r=a.useCallback(()=>{s(h=>({...h,isOpen:!1}))},[]),c=a.useCallback(()=>{s(h=>({...h,mode:h.mode==="floating"?"docked":"floating"}))},[]),l=a.useCallback(h=>{s(u=>({...u,mode:h}))},[]),d=a.useCallback(h=>{const u=U(h);s(p=>I(u)===I(p.currentUrl)?p:{...p,currentUrl:u,history:[...p.history.slice(0,p.historyIndex+1),u],historyIndex:p.historyIndex+1,navVersion:p.navVersion+1})},[]),k=a.useCallback(h=>{s(u=>I(h)===I(u.currentUrl)?u:{...u,currentUrl:h,history:[...u.history.slice(0,u.historyIndex+1),h],historyIndex:u.historyIndex+1})},[]),g=a.useCallback(()=>{s(h=>{if(h.historyIndex<=0)return h;const u=h.historyIndex-1;return{...h,historyIndex:u,currentUrl:h.history[u]}})},[]),f=a.useCallback(()=>{s(h=>{if(h.historyIndex>=h.history.length-1)return h;const u=h.historyIndex+1;return{...h,historyIndex:u,currentUrl:h.history[u]}})},[]),x=t.historyIndex>0,i=t.historyIndex<t.history.length-1,v=a.useMemo(()=>({...t,open:o,close:r,toggleMode:c,setMode:l,navigate:d,syncUrl:k,goBack:g,goForward:f,canGoBack:x,canGoForward:i}),[t,o,r,c,l,d,k,g,f,x,i]);return n.jsx(me.Provider,{value:v,children:e})}function pn(){const e=$();a.useEffect(()=>{const t=s=>{const o=s.target.closest("a[href]");if(!o)return;const r=o.getAttribute("href")||"";mn(r)&&(o.hasAttribute("data-doc-external")||s.ctrlKey||s.metaKey||s.shiftKey||(s.preventDefault(),s.stopPropagation(),e.open(r)))};return document.addEventListener("click",t,!0),()=>document.removeEventListener("click",t,!0)},[e])}const ge=a.createContext(null);function fn({children:e}){const[t,s]=a.useState(()=>F());a.useEffect(()=>an(d=>{s(d)}),[]);const o=a.useCallback(l=>{sn(l),s(P())},[]),r=a.useCallback(()=>{o(t==="en"?"zh":"en")},[t,o]),c=a.useMemo(()=>({language:t,setLanguage:o,toggleLanguage:r}),[t,o,r]);return n.jsx(ge.Provider,{value:c,children:e})}function zn(){const e=a.useContext(ge);if(!e)throw new Error("useI18n must be used within I18nProvider");return{...e,t:m}}const pe=a.createContext(null);function xn({children:e}){const[t,s]=a.useState(()=>V());a.useEffect(()=>hn(l=>{s(l)}),[]);const o=a.useCallback(c=>{cn(c),s(ln())},[]),r=a.useMemo(()=>({theme:t,setTheme:o}),[t,o]);return n.jsx(pe.Provider,{value:r,children:e})}function yn(){const e=a.useContext(pe);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const Q=Ie,$n=Te,_=a.forwardRef(({className:e,children:t,...s},o)=>n.jsxs(ee,{ref:o,className:y("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-xl border border-gray-200/80 bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 bg-white",e),...s,children:[t,n.jsx(we,{asChild:!0,children:n.jsx(ne,{className:"h-4 w-4 opacity-50"})})]}));_.displayName=ee.displayName;const fe=a.forwardRef(({className:e,...t},s)=>n.jsx(te,{ref:s,className:y("flex cursor-default items-center justify-center py-1",e),...t,children:n.jsx(Se,{className:"h-4 w-4"})}));fe.displayName=te.displayName;const ze=a.forwardRef(({className:e,...t},s)=>n.jsx(se,{ref:s,className:y("flex cursor-default items-center justify-center py-1",e),...t,children:n.jsx(ne,{className:"h-4 w-4"})}));ze.displayName=se.displayName;const O=a.forwardRef(({className:e,children:t,position:s="popper",...o},r)=>n.jsx(be,{children:n.jsxs(ae,{ref:r,className:y("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-white",s==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:s,...o,children:[n.jsx(fe,{}),n.jsx(ke,{className:y("p-1",s==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),n.jsx(ze,{})]})}));O.displayName=ae.displayName;const wn=a.forwardRef(({className:e,...t},s)=>n.jsx(oe,{ref:s,className:y("px-2 py-1.5 text-sm font-semibold",e),...t}));wn.displayName=oe.displayName;const B=a.forwardRef(({className:e,children:t,...s},o)=>n.jsxs(re,{ref:o,className:y("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-100 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 hover:bg-gray-100",e),...s,children:[n.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:n.jsx(Pe,{children:n.jsx(ve,{className:"h-4 w-4"})})}),n.jsx(Ce,{children:t})]}));B.displayName=re.displayName;const Sn=a.forwardRef(({className:e,...t},s)=>n.jsx(ie,{ref:s,className:y("-mx-1 my-1 h-px bg-muted",e),...t}));Sn.displayName=ie.displayName;function bn(){var f,x;const e=$(),{language:t,setLanguage:s}=zn(),{theme:o,setTheme:r}=yn(),c=((f=G.find(i=>i.value===t))==null?void 0:f.label)??t,l=m(((x=q.find(i=>i.value===o))==null?void 0:x.labelKey)??"themeWarm"),d=i=>{t!==i&&(s(i),window.location.reload())},k=i=>{o!==i&&r(i)},g=[{target:"/chat",label:m("chat"),icon:Ae},{target:"/model",label:m("model"),icon:De},{target:"/providers",label:m("providers"),icon:Le},{target:"/channels",label:m("channels"),icon:je},{target:"/runtime",label:m("runtime"),icon:Ee},{target:"/sessions",label:m("sessions"),icon:Ne},{target:"/cron",label:m("cron"),icon:Me},{target:"/secrets",label:m("secrets"),icon:Re},{target:"/marketplace/plugins",label:m("marketplaceFilterPlugins"),icon:Ue},{target:"/marketplace/skills",label:m("marketplaceFilterSkills"),icon:_e}];return n.jsxs("aside",{className:"w-[240px] shrink-0 flex flex-col h-full py-6 px-4 bg-secondary",children:[n.jsx("div",{className:"px-2 mb-8",children:n.jsxs("div",{className:"flex items-center gap-2.5 cursor-pointer",children:[n.jsx("div",{className:"h-7 w-7 rounded-lg overflow-hidden flex items-center justify-center",children:n.jsx("img",{src:"/logo.svg",alt:"NextClaw",className:"h-full w-full object-contain"})}),n.jsx("span",{className:"text-[15px] font-semibold text-gray-800 tracking-[-0.01em]",children:"NextClaw"})]})}),n.jsx("nav",{className:"flex-1",children:n.jsx("ul",{className:"space-y-1",children:g.map(i=>{const v=i.icon;return n.jsx("li",{children:n.jsx(Oe,{to:i.target,className:({isActive:h})=>y("group w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-[14px] font-medium transition-all duration-base",h?"bg-gray-200 text-gray-900 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-200/60 hover:text-gray-900"),children:({isActive:h})=>n.jsxs(n.Fragment,{children:[n.jsx(v,{className:y("h-[17px] w-[17px] transition-colors",h?"text-gray-900":"text-gray-500 group-hover:text-gray-800")}),n.jsx("span",{className:"flex-1 text-left",children:i.label})]})})},i.target)})})}),n.jsxs("div",{className:"pt-3 border-t border-[#dde0ea] mt-3",children:[n.jsx("div",{className:"mb-2",children:n.jsxs(Q,{value:o,onValueChange:i=>k(i),children:[n.jsxs(_,{className:"w-full h-auto rounded-xl border-0 bg-transparent shadow-none px-3 py-2.5 text-[14px] font-medium text-gray-600 hover:bg-[#e4e7ef] focus:ring-0",children:[n.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[n.jsx(Be,{className:"h-[17px] w-[17px] text-gray-400"}),n.jsx("span",{className:"text-left",children:m("theme")})]}),n.jsx("span",{className:"ml-auto text-xs text-gray-500",children:l})]}),n.jsx(O,{children:q.map(i=>n.jsx(B,{value:i.value,className:"text-xs",children:m(i.labelKey)},i.value))})]})}),n.jsx("div",{className:"mb-2",children:n.jsxs(Q,{value:t,onValueChange:i=>d(i),children:[n.jsxs(_,{className:"w-full h-auto rounded-xl border-0 bg-transparent shadow-none px-3 py-2.5 text-[14px] font-medium text-gray-600 hover:bg-[#e4e7ef] focus:ring-0",children:[n.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[n.jsx(Fe,{className:"h-[17px] w-[17px] text-gray-400"}),n.jsx("span",{className:"text-left",children:m("language")})]}),n.jsx("span",{className:"ml-auto text-xs text-gray-500",children:c})]}),n.jsx(O,{children:G.map(i=>n.jsx(B,{value:i.value,className:"text-xs",children:i.label},i.value))})]})}),n.jsxs("button",{onClick:()=>e.open(),className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-[14px] font-medium transition-all duration-base text-gray-600 hover:bg-[#e4e7ef] hover:text-gray-800",children:[n.jsx(He,{className:"h-[17px] w-[17px] text-gray-400"}),n.jsx("span",{className:"flex-1 text-left",children:m("docBrowserHelp")})]})]})]})}const X=a.lazy(async()=>({default:(await w(async()=>{const{DocBrowser:e}=await import("./DocBrowser-BY90Lf6L.js");return{DocBrowser:e}},__vite__mapDeps([0,1]))).DocBrowser}));function kn({children:e}){const{isOpen:t,mode:s}=$();return pn(),n.jsxs("div",{className:"h-screen flex bg-background font-sans text-foreground",children:[n.jsx(bn,{}),n.jsxs("div",{className:"flex-1 flex min-w-0 overflow-hidden relative",children:[n.jsx("div",{className:"flex-1 flex flex-col min-w-0 overflow-hidden",children:n.jsx("main",{className:"flex-1 overflow-auto custom-scrollbar p-8",children:n.jsx("div",{className:"max-w-6xl mx-auto animate-fade-in h-full",children:e})})}),t&&s==="docked"&&n.jsx(a.Suspense,{fallback:null,children:n.jsx(X,{})})]}),t&&s==="floating"&&n.jsx(a.Suspense,{fallback:null,children:n.jsx(X,{})})]})}function Pn({children:e}){return n.jsx(gn,{children:n.jsx(kn,{children:e})})}class vn{constructor(t){this.url=t,this.ws=null,this.handlers=new Map,this.reconnectTimer=null,this.manualClose=!1}connect(){this.manualClose=!1,this.ws=new WebSocket(this.url),this.ws.onopen=()=>{console.log("WebSocket connected"),this.emit({type:"connection.open",payload:{}})},this.ws.onmessage=t=>{try{const s=JSON.parse(t.data);this.emit(s)}catch(s){console.error("Failed to parse WebSocket message:",s)}},this.ws.onclose=()=>{console.log("WebSocket disconnected"),this.manualClose||this.scheduleReconnect()},this.ws.onerror=t=>{console.error("WebSocket error:",t)}}on(t,s){this.handlers.has(t)||this.handlers.set(t,new Set),this.handlers.get(t).add(s)}off(t,s){var o;(o=this.handlers.get(t))==null||o.delete(s)}emit(t){const s=this.handlers.get(t.type);s==null||s.forEach(o=>o(t))}scheduleReconnect(){this.reconnectTimer||(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},3e3))}disconnect(){var t;this.manualClose=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),(t=this.ws)==null||t.close(),this.ws=null}}const Cn="http://127.0.0.1:18791",A=(()=>{var e;return typeof window<"u"&&((e=window.location)!=null&&e.origin)?window.location.origin:Cn})();async function T(e,t={}){const s=`${A}${e}`,o=await fetch(s,{headers:{"Content-Type":"application/json",...t.headers},...t}),r=await o.text();let c=null;if(r)try{c=JSON.parse(r)}catch{}if(!c){const l=r?r.slice(0,200):"";return{ok:!1,error:{code:"INVALID_RESPONSE",message:`Non-JSON response (${o.status} ${o.statusText})${l?`: ${l}`:""}`}}}return o.ok,c}const Wn={get:e=>T(e,{method:"GET"}),put:(e,t)=>T(e,{method:"PUT",body:JSON.stringify(t)}),post:(e,t)=>T(e,{method:"POST",body:JSON.stringify(t)}),delete:e=>T(e,{method:"DELETE"})},In=Ve(e=>({connectionStatus:"disconnected",setConnectionStatus:t=>e({connectionStatus:t}),providerModal:{open:!1},openProviderModal:t=>e({providerModal:{open:!0,provider:t}}),closeProviderModal:()=>e({providerModal:{open:!1}}),channelModal:{open:!1},openChannelModal:t=>e({channelModal:{open:!0,channel:t}}),closeChannelModal:()=>e({channelModal:{open:!1}})}));function Tn(e){const[t,s]=a.useState(null),{setConnectionStatus:o}=In();return a.useEffect(()=>{const r=(()=>{const l=A==null?void 0:A.replace(/\/$/,"");if(!l)return"ws://127.0.0.1:18791/ws";try{const d=new URL(l,window.location.origin);return`${d.protocol==="https:"?"wss:":d.protocol==="http:"?"ws:":d.protocol}//${d.host}/ws`}catch{return l.startsWith("wss://")||l.startsWith("ws://")?`${l}/ws`:l.startsWith("https://")?`${l.replace(/^https:/,"wss:")}/ws`:l.startsWith("http://")?`${l.replace(/^http:/,"ws:")}/ws`:`${l}/ws`}})(),c=new vn(r);return c.on("connection.open",()=>{o("connected")}),c.on("config.updated",()=>{e&&e.invalidateQueries({queryKey:["config"]})}),c.on("error",l=>{l.type==="error"&&console.error("WebSocket error:",l.payload.message)}),c.connect(),s(c),()=>c.disconnect()},[o,e]),t}const Z=new $e({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!0}}}),An=a.lazy(async()=>({default:(await w(async()=>{const{ModelConfig:e}=await import("./ModelConfig-Dga1Ko7_.js");return{ModelConfig:e}},__vite__mapDeps([2,1,3,4,5,6,7]))).ModelConfig})),Dn=a.lazy(async()=>({default:(await w(async()=>{const{ChatPage:e}=await import("./ChatPage-DidO_pAN.js");return{ChatPage:e}},__vite__mapDeps([8,1,5,9,10,3,11]))).ChatPage})),Ln=a.lazy(async()=>({default:(await w(async()=>{const{ProvidersList:e}=await import("./ProvidersList-DvCoBTrT.js");return{ProvidersList:e}},__vite__mapDeps([12,1,5,10,3,6,7,13,14]))).ProvidersList})),jn=a.lazy(async()=>({default:(await w(async()=>{const{ChannelsList:e}=await import("./ChannelsList-AKnD2r1L.js");return{ChannelsList:e}},__vite__mapDeps([15,1,5,10,3,6,16,7,13,14]))).ChannelsList})),En=a.lazy(async()=>({default:(await w(async()=>{const{RuntimeConfig:e}=await import("./RuntimeConfig-2aqBJ6Xn.js");return{RuntimeConfig:e}},__vite__mapDeps([17,1,5,3,4,16,7]))).RuntimeConfig})),Nn=a.lazy(async()=>({default:(await w(async()=>{const{SessionsConfig:e}=await import("./SessionsConfig-CN2WymbH.js");return{SessionsConfig:e}},__vite__mapDeps([18,1,9,10,3,5,11]))).SessionsConfig})),Mn=a.lazy(async()=>({default:(await w(async()=>{const{CronConfig:e}=await import("./CronConfig-C1pm-oKA.js");return{CronConfig:e}},__vite__mapDeps([19,1,9,10,3,5,4]))).CronConfig})),Rn=a.lazy(async()=>({default:(await w(async()=>{const{SecretsConfig:e}=await import("./SecretsConfig-wlnh__z0.js");return{SecretsConfig:e}},__vite__mapDeps([20,1,5,3,4,6,16]))).SecretsConfig})),Un=a.lazy(async()=>({default:(await w(async()=>{const{MarketplacePage:e}=await import("./MarketplacePage-BRtmhP3G.js");return{MarketplacePage:e}},__vite__mapDeps([21,1,13,10,9,3]))).MarketplacePage}));function _n(){return n.jsx("div",{className:"h-full w-full animate-pulse rounded-2xl border border-border/40 bg-card/40"})}function S({children:e}){return n.jsx(a.Suspense,{fallback:n.jsx(_n,{}),children:e})}function On(){Tn(Z);const e=We();return n.jsxs(Ge,{client:Z,children:[n.jsx(Pn,{children:n.jsx("div",{className:"animate-fade-in w-full h-full",children:n.jsxs(Ke,{children:[n.jsx(z,{path:"/chat",element:n.jsx(S,{children:n.jsx(Dn,{})})}),n.jsx(z,{path:"/model",element:n.jsx(S,{children:n.jsx(An,{})})}),n.jsx(z,{path:"/providers",element:n.jsx(S,{children:n.jsx(Ln,{})})}),n.jsx(z,{path:"/channels",element:n.jsx(S,{children:n.jsx(jn,{})})}),n.jsx(z,{path:"/runtime",element:n.jsx(S,{children:n.jsx(En,{})})}),n.jsx(z,{path:"/sessions",element:n.jsx(S,{children:n.jsx(Nn,{})})}),n.jsx(z,{path:"/cron",element:n.jsx(S,{children:n.jsx(Mn,{})})}),n.jsx(z,{path:"/secrets",element:n.jsx(S,{children:n.jsx(Rn,{})})}),n.jsx(z,{path:"/marketplace",element:n.jsx(D,{to:"/marketplace/plugins",replace:!0})}),n.jsx(z,{path:"/marketplace/:type",element:n.jsx(S,{children:n.jsx(Un,{})})}),n.jsx(z,{path:"/",element:n.jsx(D,{to:"/chat",replace:!0})}),n.jsx(z,{path:"*",element:n.jsx(D,{to:"/chat",replace:!0})})]})},e.pathname)}),n.jsx(qe,{position:"top-right",richColors:!0})]})}Je.createRoot(document.getElementById("root")).render(n.jsx(a.StrictMode,{children:n.jsx(xn,{children:n.jsx(fn,{children:n.jsx(Ye,{children:n.jsx(On,{})})})})}));export{Y as D,Q as S,Fn as a,_ as b,y as c,$n as d,O as e,Vn as f,B as g,Hn as h,Wn as i,$ as j,m as t,In as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,j as o}from"./vendor-
|
|
1
|
+
import{r as s,j as o}from"./vendor-H2M3a_4Z.js";import{c as t}from"./index-D_vv0E-O.js";const l=s.forwardRef(({className:e,...a},r)=>o.jsx("label",{ref:r,className:t("text-sm font-medium leading-none text-gray-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",e),...a}));l.displayName="Label";export{l as L};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as p,r as N,j as n}from"./vendor-
|
|
1
|
+
import{c as p,r as N,j as n}from"./vendor-H2M3a_4Z.js";import{c as v}from"./index-D_vv0E-O.js";const y=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,f=p,w=(r,t)=>e=>{var i;if((t==null?void 0:t.variants)==null)return f(r,e==null?void 0:e.class,e==null?void 0:e.className);const{variants:u,defaultVariants:o}=t,g=Object.keys(u).map(a=>{const s=e==null?void 0:e[a],d=o==null?void 0:o[a];if(s===null)return null;const l=y(s)||y(d);return u[a][l]}),m=e&&Object.entries(e).reduce((a,s)=>{let[d,l]=s;return l===void 0||(a[d]=l),a},{}),b=t==null||(i=t.compoundVariants)===null||i===void 0?void 0:i.reduce((a,s)=>{let{class:d,className:l,...h}=s;return Object.entries(h).every(j=>{let[x,c]=j;return Array.isArray(c)?c.includes({...o,...m}[x]):{...o,...m}[x]===c})?[...a,d,l]:a},[]);return f(r,g,b,e==null?void 0:e.class,e==null?void 0:e.className)},V=w("inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-gray-200 bg-white hover:bg-gray-50 hover:text-gray-800 text-gray-600",secondary:"bg-gray-100 text-gray-700 hover:bg-gray-200/80",ghost:"hover:bg-gray-100/80 hover:text-gray-800",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",subtle:"bg-gray-100 text-gray-600 hover:bg-gray-200/80","primary-outline":"border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 px-3 text-xs",lg:"h-11 px-5 text-[14px]",xl:"h-12 px-6 text-[15px]",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),k=N.forwardRef(({className:r,variant:t,size:e,...i},u)=>n.jsx("button",{className:v(V({variant:t,size:e,className:r})),ref:u,...i}));k.displayName="Button";function O({children:r,fullHeight:t=!1,className:e}){return n.jsx("div",{className:v("animate-fade-in",t?"h-[calc(100vh-80px)] w-full flex flex-col":"pb-16",e),children:r})}function B({title:r,description:t,actions:e,className:i}){return n.jsxs("div",{className:v("flex items-center justify-between mb-6 shrink-0",i),children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-xl font-semibold text-gray-900",children:r}),t&&n.jsx("p",{className:"text-sm text-gray-500 mt-1",children:t})]}),e&&n.jsx("div",{className:"flex items-center gap-2 shrink-0",children:e})]})}export{k as B,O as P,B as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,j as i}from"./vendor-
|
|
1
|
+
import{r as e,j as i}from"./vendor-H2M3a_4Z.js";import{c as t}from"./index-D_vv0E-O.js";const l=e.forwardRef(({className:o,checked:r=!1,onCheckedChange:s,...a},n)=>i.jsx("button",{type:"button",role:"switch","aria-checked":r,ref:n,className:t("peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50",r?"bg-primary":"bg-gray-200/80 hover:bg-gray-300/80",o),onClick:()=>s==null?void 0:s(!r),...a,children:i.jsx("span",{className:t("pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md ring-0 transition-transform duration-fast",r?"translate-x-5":"translate-x-0")})}));l.displayName="Switch";export{l as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./vendor-
|
|
1
|
+
import{j as e}from"./vendor-H2M3a_4Z.js";import{f as m,c as s}from"./index-D_vv0E-O.js";function c({tabs:a,activeTab:i,onChange:o,className:n}){return e.jsx("div",{className:s("flex items-center gap-6 border-b border-gray-200/60 mb-6",n),children:a.map(t=>{const r=i===t.id;return e.jsxs("button",{onClick:()=>o(t.id),className:s("relative pb-3 text-[14px] font-medium transition-all duration-fast flex items-center gap-1.5",r?"text-gray-900":"text-gray-600 hover:text-gray-900"),children:[t.label,t.count!==void 0&&e.jsx("span",{className:s("text-[11px] font-medium","text-gray-500"),children:m(t.count)}),r&&e.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[2px] bg-primary rounded-full"})]},t.id)})})}export{c as T};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d,j as g,aq as c,ar as a,as as i,ae as o}from"./vendor-H2M3a_4Z.js";import{c as l,i as s,t}from"./index-D_vv0E-O.js";const y=d.forwardRef(({className:e,type:n,...r},u)=>g.jsx("input",{type:n,className:l("flex h-9 w-full rounded-xl border border-gray-200/80 bg-white px-3.5 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-400 focus:outline-none focus:ring-1 focus:ring-primary/40 focus:border-primary/40 transition-colors disabled:cursor-not-allowed disabled:opacity-50",e),ref:u,...r}));y.displayName="Input";async function p(){const e=await s.get("/api/config");if(!e.ok)throw new Error(e.error.message);return e.data}async function m(){const e=await s.get("/api/config/meta");if(!e.ok)throw new Error(e.error.message);return e.data}async function w(){const e=await s.get("/api/config/schema");if(!e.ok)throw new Error(e.error.message);return e.data}async function h(e){const n=await s.put("/api/config/model",e);if(!n.ok)throw new Error(n.error.message);return n.data}async function S(e,n){const r=await s.put(`/api/config/providers/${e}`,n);if(!r.ok)throw new Error(r.error.message);return r.data}async function q(e,n){const r=await s.put(`/api/config/channels/${e}`,n);if(!r.ok)throw new Error(r.error.message);return r.data}async function v(e){const n=await s.put("/api/config/runtime",e);if(!n.ok)throw new Error(n.error.message);return n.data}async function C(e){const n=await s.put("/api/config/secrets",e);if(!n.ok)throw new Error(n.error.message);return n.data}async function E(e,n){const r=await s.post(`/api/config/actions/${e}/execute`,n);if(!r.ok)throw new Error(r.error.message);return r.data}async function F(e){var f;const n=new URLSearchParams;(f=e==null?void 0:e.q)!=null&&f.trim()&&n.set("q",e.q.trim()),typeof(e==null?void 0:e.limit)=="number"&&Number.isFinite(e.limit)&&n.set("limit",String(Math.max(0,Math.trunc(e.limit)))),typeof(e==null?void 0:e.activeMinutes)=="number"&&Number.isFinite(e.activeMinutes)&&n.set("activeMinutes",String(Math.max(0,Math.trunc(e.activeMinutes))));const r=n.toString(),u=await s.get(r?"/api/sessions?"+r:"/api/sessions");if(!u.ok)throw new Error(u.error.message);return u.data}async function b(e,n=200){const r=await s.get(`/api/sessions/${encodeURIComponent(e)}/history?limit=${Math.max(1,Math.trunc(n))}`);if(!r.ok)throw new Error(r.error.message);return r.data}async function x(e,n){const r=await s.put(`/api/sessions/${encodeURIComponent(e)}`,n);if(!r.ok)throw new Error(r.error.message);return r.data}async function k(e){const n=await s.delete(`/api/sessions/${encodeURIComponent(e)}`);if(!n.ok)throw new Error(n.error.message);return n.data}async function K(e){const n=await s.post("/api/chat/turn",e);if(!n.ok)throw new Error(n.error.message);return n.data}async function M(e){const n=new URLSearchParams;e!=null&&e.all&&n.set("all","1");const r=n.toString(),u=await s.get(r?"/api/cron?"+r:"/api/cron");if(!u.ok)throw new Error(u.error.message);return u.data}async function Q(e){const n=await s.delete(`/api/cron/${encodeURIComponent(e)}`);if(!n.ok)throw new Error(n.error.message);return n.data}async function U(e,n){const r=await s.put(`/api/cron/${encodeURIComponent(e)}/enable`,n);if(!r.ok)throw new Error(r.error.message);return r.data}async function R(e,n){const r=await s.post(`/api/cron/${encodeURIComponent(e)}/run`,n);if(!r.ok)throw new Error(r.error.message);return r.data}function $(){return c({queryKey:["config"],queryFn:p,staleTime:3e4,refetchOnWindowFocus:!0})}function T(){return c({queryKey:["config-meta"],queryFn:m,staleTime:1/0})}function J(){return c({queryKey:["config-schema"],queryFn:w,staleTime:1/0})}function j(){const e=a();return i({mutationFn:h,onSuccess:()=>{e.invalidateQueries({queryKey:["config"]}),o.success(t("configSaved"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function N(){const e=a();return i({mutationFn:({provider:n,data:r})=>S(n,r),onSuccess:()=>{e.invalidateQueries({queryKey:["config"]}),o.success(t("configSaved"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function P(){const e=a();return i({mutationFn:({channel:n,data:r})=>q(n,r),onSuccess:()=>{e.invalidateQueries({queryKey:["config"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function D(){const e=a();return i({mutationFn:({data:n})=>v(n),onSuccess:()=>{e.invalidateQueries({queryKey:["config"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function H(){const e=a();return i({mutationFn:({data:n})=>C(n),onSuccess:()=>{e.invalidateQueries({queryKey:["config"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function L(){return i({mutationFn:({actionId:e,data:n})=>E(e,n),onError:e=>{o.error(t("error")+": "+e.message)}})}function B(e){return c({queryKey:["sessions",e],queryFn:()=>F(e),staleTime:1e4})}function O(e,n=200){return c({queryKey:["session-history",e,n],queryFn:()=>b(e,n),enabled:!!e,staleTime:5e3})}function W(){const e=a();return i({mutationFn:({key:n,data:r})=>x(n,r),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["sessions"]}),e.invalidateQueries({queryKey:["session-history",r.key]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function _(){const e=a();return i({mutationFn:({key:n})=>k(n),onSuccess:()=>{e.invalidateQueries({queryKey:["sessions"]}),e.invalidateQueries({queryKey:["session-history"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function z(){return i({mutationFn:({data:e})=>K(e),onError:e=>{o.error(t("chatSendFailed")+": "+e.message)}})}function G(e={all:!0}){return c({queryKey:["cron",e],queryFn:()=>M(e),staleTime:1e4})}function V(){const e=a();return i({mutationFn:({id:n})=>Q(n),onSuccess:()=>{e.invalidateQueries({queryKey:["cron"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function X(){const e=a();return i({mutationFn:({id:n,enabled:r})=>U(n,{enabled:r}),onSuccess:()=>{e.invalidateQueries({queryKey:["cron"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}function Y(){const e=a();return i({mutationFn:({id:n,force:r})=>R(n,{force:r}),onSuccess:()=>{e.invalidateQueries({queryKey:["cron"]}),o.success(t("configSavedApplied"))},onError:n=>{o.error(t("configSaveFailed")+": "+n.message)}})}export{y as I,J as a,j as b,B as c,O as d,_ as e,z as f,T as g,N as h,P as i,L as j,D as k,W as l,G as m,V as n,X as o,Y as p,H as q,$ as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,r as t}from"./vendor-
|
|
1
|
+
import{j as a,r as t}from"./vendor-H2M3a_4Z.js";import{D as p,a as C,b as h,c as x,d as D,e as g}from"./dialog-DZ0VC-RD.js";import{B as m}from"./page-layout-CLgr0qym.js";import{t as i}from"./index-D_vv0E-O.js";const j=({open:l,onOpenChange:r,title:c,description:o,confirmLabel:s=i("confirm"),cancelLabel:e=i("cancel"),variant:n="default",onConfirm:f,onCancel:u})=>{const d=()=>{f(),r(!1)},v=()=>{u(),r(!1)};return a.jsx(p,{open:l,onOpenChange:r,children:a.jsxs(C,{className:"[&>:last-child]:hidden",onCloseAutoFocus:b=>b.preventDefault(),children:[a.jsxs(h,{children:[a.jsx(x,{children:c}),o?a.jsx(D,{children:o}):null]}),a.jsxs(g,{className:"gap-2 sm:gap-0",children:[a.jsx(m,{type:"button",variant:"outline",onClick:v,children:e}),a.jsx(m,{type:"button",variant:n==="destructive"?"destructive":"default",onClick:d,children:s})]})]})})},L={open:!1,title:"",description:"",confirmLabel:i("confirm"),cancelLabel:i("cancel"),variant:"default",resolve:null};function F(){const[l,r]=t.useState(L),c=t.useCallback(e=>new Promise(n=>{r({open:!0,title:e.title,description:e.description??"",confirmLabel:e.confirmLabel??i("confirm"),cancelLabel:e.cancelLabel??i("cancel"),variant:e.variant??"default",resolve:f=>{n(f),r(u=>({...u,open:!1,resolve:null}))}})}),[]),o=t.useCallback(e=>{r(n=>(!e&&n.resolve&&n.resolve(!1),{...n,open:e,resolve:e?n.resolve:null}))},[]),s=t.useCallback(()=>a.jsx(j,{open:l.open,onOpenChange:o,title:l.title,description:l.description||void 0,confirmLabel:l.confirmLabel,cancelLabel:l.cancelLabel,variant:l.variant,onConfirm:()=>{var e;return(e=l.resolve)==null?void 0:e.call(l,!0)},onCancel:()=>{var e;return(e=l.resolve)==null?void 0:e.call(l,!1)}}),[l,o]);return{confirm:c,ConfirmDialog:s}}export{F as u};
|
|
@@ -379,4 +379,4 @@ Please change the parent <Route path="${R}"> to <Route path="${R==="/"?"*":`${R}
|
|
|
379
379
|
.block-interactivity-`.concat(n,` {pointer-events: none;}
|
|
380
380
|
.allow-interactivity-`).concat(n,` {pointer-events: all;}
|
|
381
381
|
`)},$2=0,Xo=[];function V2(n){var r=g.useRef([]),i=g.useRef([0,0]),l=g.useRef(),u=g.useState($2++)[0],c=g.useState(Iv)[0],f=g.useRef(n);g.useEffect(function(){f.current=n},[n]),g.useEffect(function(){if(n.inert){document.body.classList.add("block-interactivity-".concat(u));var S=d2([n.lockRef.current],(n.shards||[]).map(Gh),!0).filter(Boolean);return S.forEach(function(C){return C.classList.add("allow-interactivity-".concat(u))}),function(){document.body.classList.remove("block-interactivity-".concat(u)),S.forEach(function(C){return C.classList.remove("allow-interactivity-".concat(u))})}}},[n.inert,n.lockRef.current,n.shards]);var p=g.useCallback(function(S,C){if("touches"in S&&S.touches.length===2||S.type==="wheel"&&S.ctrlKey)return!f.current.allowPinchZoom;var P=$l(S),M=i.current,R="deltaX"in S?S.deltaX:M[0]-P[0],L="deltaY"in S?S.deltaY:M[1]-P[1],z,U=S.target,H=Math.abs(R)>Math.abs(L)?"h":"v";if("touches"in S&&H==="h"&&U.type==="range")return!1;var G=window.getSelection(),Z=G&&G.anchorNode,te=Z?Z===U||Z.contains(U):!1;if(te)return!1;var pe=Qh(H,U);if(!pe)return!0;if(pe?z=H:(z=H==="v"?"h":"v",pe=Qh(H,U)),!pe)return!1;if(!l.current&&"changedTouches"in S&&(R||L)&&(l.current=z),!z)return!0;var X=l.current||z;return B2(X,C,S,X==="h"?R:L)},[]),h=g.useCallback(function(S){var C=S;if(!(!Xo.length||Xo[Xo.length-1]!==c)){var P="deltaY"in C?Kh(C):$l(C),M=r.current.filter(function(z){return z.name===C.type&&(z.target===C.target||C.target===z.shadowParent)&&U2(z.delta,P)})[0];if(M&&M.should){C.cancelable&&C.preventDefault();return}if(!M){var R=(f.current.shards||[]).map(Gh).filter(Boolean).filter(function(z){return z.contains(C.target)}),L=R.length>0?p(C,R[0]):!f.current.noIsolation;L&&C.cancelable&&C.preventDefault()}}},[]),v=g.useCallback(function(S,C,P,M){var R={name:S,delta:C,target:P,should:M,shadowParent:W2(P)};r.current.push(R),setTimeout(function(){r.current=r.current.filter(function(L){return L!==R})},1)},[]),w=g.useCallback(function(S){i.current=$l(S),l.current=void 0},[]),x=g.useCallback(function(S){v(S.type,Kh(S),S.target,p(S,n.lockRef.current))},[]),E=g.useCallback(function(S){v(S.type,$l(S),S.target,p(S,n.lockRef.current))},[]);g.useEffect(function(){return Xo.push(c),n.setCallbacks({onScrollCapture:x,onWheelCapture:x,onTouchMoveCapture:E}),document.addEventListener("wheel",h,qo),document.addEventListener("touchmove",h,qo),document.addEventListener("touchstart",w,qo),function(){Xo=Xo.filter(function(S){return S!==c}),document.removeEventListener("wheel",h,qo),document.removeEventListener("touchmove",h,qo),document.removeEventListener("touchstart",w,qo)}},[]);var y=n.removeScrollBar,O=n.inert;return g.createElement(g.Fragment,null,O?g.createElement(c,{styles:H2(u)}):null,y?g.createElement(L2,{noRelative:n.noRelative,gapMode:n.gapMode}):null)}function W2(n){for(var r=null;n!==null;)n instanceof ShadowRoot&&(r=n.host,n=n.host),n=n.parentNode;return r}const Q2=x2(Lv,V2);var zv=g.forwardRef(function(n,r){return g.createElement(fa,Ln({},n,{ref:r,sideCar:Q2}))});zv.classNames=fa.classNames;var K2=[" ","Enter","ArrowUp","ArrowDown"],G2=[" ","Enter"],xo="Select",[pa,ha,Y2]=ax(xo),[Si]=id(xo,[Y2,gv]),ma=gv(),[q2,$r]=Si(xo),[X2,Z2]=Si(xo),jv=n=>{const{__scopeSelect:r,children:i,open:l,defaultOpen:u,onOpenChange:c,value:f,defaultValue:p,onValueChange:h,dir:v,name:w,autoComplete:x,disabled:E,required:y,form:O}=n,S=ma(r),[C,P]=g.useState(null),[M,R]=g.useState(null),[L,z]=g.useState(!1),U=cx(v),[H,G]=$h({prop:l,defaultProp:u??!1,onChange:c,caller:xo}),[Z,te]=$h({prop:f,defaultProp:p,onChange:h,caller:xo}),pe=g.useRef(null),X=C?O||!!C.closest("form"):!0,[ye,ce]=g.useState(new Set),xe=Array.from(ye).map(ae=>ae.props.value).join(";");return ee.jsx(XS,{...S,children:ee.jsxs(q2,{required:y,scope:r,trigger:C,onTriggerChange:P,valueNode:M,onValueNodeChange:R,valueNodeHasChildren:L,onValueNodeHasChildrenChange:z,contentId:sd(),value:Z,onValueChange:te,open:H,onOpenChange:G,dir:U,triggerPointerDownPosRef:pe,disabled:E,children:[ee.jsx(pa.Provider,{scope:r,children:ee.jsx(X2,{scope:n.__scopeSelect,onNativeOptionAdd:g.useCallback(ae=>{ce(ie=>new Set(ie).add(ae))},[]),onNativeOptionRemove:g.useCallback(ae=>{ce(ie=>{const j=new Set(ie);return j.delete(ae),j})},[]),children:i})}),X?ee.jsxs(uy,{"aria-hidden":!0,required:y,tabIndex:-1,name:w,autoComplete:x,value:Z,onChange:ae=>te(ae.target.value),disabled:E,form:O,children:[Z===void 0?ee.jsx("option",{value:""}):null,Array.from(ye)]},xe):null]})})};jv.displayName=xo;var Bv="SelectTrigger",Uv=g.forwardRef((n,r)=>{const{__scopeSelect:i,disabled:l=!1,...u}=n,c=ma(i),f=$r(Bv,i),p=f.disabled||l,h=ct(r,f.onTriggerChange),v=ha(i),w=g.useRef("touch"),[x,E,y]=dy(S=>{const C=v().filter(R=>!R.disabled),P=C.find(R=>R.value===f.value),M=fy(C,S,P);M!==void 0&&f.onValueChange(M.value)}),O=S=>{p||(f.onOpenChange(!0),y()),S&&(f.triggerPointerDownPosRef.current={x:Math.round(S.pageX),y:Math.round(S.pageY)})};return ee.jsx(ZS,{asChild:!0,...c,children:ee.jsx(Xe.button,{type:"button",role:"combobox","aria-controls":f.contentId,"aria-expanded":f.open,"aria-required":f.required,"aria-autocomplete":"none",dir:f.dir,"data-state":f.open?"open":"closed",disabled:p,"data-disabled":p?"":void 0,"data-placeholder":cy(f.value)?"":void 0,...u,ref:h,onClick:Je(u.onClick,S=>{S.currentTarget.focus(),w.current!=="mouse"&&O(S)}),onPointerDown:Je(u.onPointerDown,S=>{w.current=S.pointerType;const C=S.target;C.hasPointerCapture(S.pointerId)&&C.releasePointerCapture(S.pointerId),S.button===0&&S.ctrlKey===!1&&S.pointerType==="mouse"&&(O(S),S.preventDefault())}),onKeyDown:Je(u.onKeyDown,S=>{const C=x.current!=="";!(S.ctrlKey||S.altKey||S.metaKey)&&S.key.length===1&&E(S.key),!(C&&S.key===" ")&&K2.includes(S.key)&&(O(),S.preventDefault())})})})});Uv.displayName=Bv;var Hv="SelectValue",$v=g.forwardRef((n,r)=>{const{__scopeSelect:i,className:l,style:u,children:c,placeholder:f="",...p}=n,h=$r(Hv,i),{onValueNodeHasChildrenChange:v}=h,w=c!==void 0,x=ct(r,h.onValueNodeChange);return It(()=>{v(w)},[v,w]),ee.jsx(Xe.span,{...p,ref:x,style:{pointerEvents:"none"},children:cy(h.value)?ee.jsx(ee.Fragment,{children:f}):c})});$v.displayName=Hv;var J2="SelectIcon",Vv=g.forwardRef((n,r)=>{const{__scopeSelect:i,children:l,...u}=n;return ee.jsx(Xe.span,{"aria-hidden":!0,...u,ref:r,children:l||"▼"})});Vv.displayName=J2;var eC="SelectPortal",Wv=n=>ee.jsx(Pv,{asChild:!0,...n});Wv.displayName=eC;var So="SelectContent",Qv=g.forwardRef((n,r)=>{const i=$r(So,n.__scopeSelect),[l,u]=g.useState();if(It(()=>{u(new DocumentFragment)},[]),!i.open){const c=l;return c?xs.createPortal(ee.jsx(Kv,{scope:n.__scopeSelect,children:ee.jsx(pa.Slot,{scope:n.__scopeSelect,children:ee.jsx("div",{children:n.children})})}),c):null}return ee.jsx(Gv,{...n,ref:r})});Qv.displayName=So;var cn=10,[Kv,Vr]=Si(So),tC="SelectContentImpl",nC=ea("SelectContent.RemoveScroll"),Gv=g.forwardRef((n,r)=>{const{__scopeSelect:i,position:l="item-aligned",onCloseAutoFocus:u,onEscapeKeyDown:c,onPointerDownOutside:f,side:p,sideOffset:h,align:v,alignOffset:w,arrowPadding:x,collisionBoundary:E,collisionPadding:y,sticky:O,hideWhenDetached:S,avoidCollisions:C,...P}=n,M=$r(So,i),[R,L]=g.useState(null),[z,U]=g.useState(null),H=ct(r,K=>L(K)),[G,Z]=g.useState(null),[te,pe]=g.useState(null),X=ha(i),[ye,ce]=g.useState(!1),xe=g.useRef(!1);g.useEffect(()=>{if(R)return c2(R)},[R]),Sx();const ae=g.useCallback(K=>{const[fe,...Ce]=X().map(Oe=>Oe.ref.current),[be]=Ce.slice(-1),Te=document.activeElement;for(const Oe of K)if(Oe===Te||(Oe==null||Oe.scrollIntoView({block:"nearest"}),Oe===fe&&z&&(z.scrollTop=0),Oe===be&&z&&(z.scrollTop=z.scrollHeight),Oe==null||Oe.focus(),document.activeElement!==Te))return},[X,z]),ie=g.useCallback(()=>ae([G,R]),[ae,G,R]);g.useEffect(()=>{ye&&ie()},[ye,ie]);const{onOpenChange:j,triggerPointerDownPosRef:B}=M;g.useEffect(()=>{if(R){let K={x:0,y:0};const fe=be=>{var Te,Oe;K={x:Math.abs(Math.round(be.pageX)-(((Te=B.current)==null?void 0:Te.x)??0)),y:Math.abs(Math.round(be.pageY)-(((Oe=B.current)==null?void 0:Oe.y)??0))}},Ce=be=>{K.x<=10&&K.y<=10?be.preventDefault():R.contains(be.target)||j(!1),document.removeEventListener("pointermove",fe),B.current=null};return B.current!==null&&(document.addEventListener("pointermove",fe),document.addEventListener("pointerup",Ce,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",fe),document.removeEventListener("pointerup",Ce,{capture:!0})}}},[R,j,B]),g.useEffect(()=>{const K=()=>j(!1);return window.addEventListener("blur",K),window.addEventListener("resize",K),()=>{window.removeEventListener("blur",K),window.removeEventListener("resize",K)}},[j]);const[W,N]=dy(K=>{const fe=X().filter(Te=>!Te.disabled),Ce=fe.find(Te=>Te.ref.current===document.activeElement),be=fy(fe,K,Ce);be&&setTimeout(()=>be.ref.current.focus())}),F=g.useCallback((K,fe,Ce)=>{const be=!xe.current&&!Ce;(M.value!==void 0&&M.value===fe||be)&&(Z(K),be&&(xe.current=!0))},[M.value]),ne=g.useCallback(()=>R==null?void 0:R.focus(),[R]),re=g.useCallback((K,fe,Ce)=>{const be=!xe.current&&!Ce;(M.value!==void 0&&M.value===fe||be)&&pe(K)},[M.value]),me=l==="popper"?zc:Yv,Se=me===zc?{side:p,sideOffset:h,align:v,alignOffset:w,arrowPadding:x,collisionBoundary:E,collisionPadding:y,sticky:O,hideWhenDetached:S,avoidCollisions:C}:{};return ee.jsx(Kv,{scope:i,content:R,viewport:z,onViewportChange:U,itemRefCallback:F,selectedItem:G,onItemLeave:ne,itemTextRefCallback:re,focusSelectedItem:ie,selectedItemText:te,position:l,isPositioned:ye,searchRef:W,children:ee.jsx(zv,{as:nC,allowPinchZoom:!0,children:ee.jsx(rv,{asChild:!0,trapped:M.open,onMountAutoFocus:K=>{K.preventDefault()},onUnmountAutoFocus:Je(u,K=>{var fe;(fe=M.trigger)==null||fe.focus({preventScroll:!0}),K.preventDefault()}),children:ee.jsx(tv,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:K=>K.preventDefault(),onDismiss:()=>M.onOpenChange(!1),children:ee.jsx(me,{role:"listbox",id:M.contentId,"data-state":M.open?"open":"closed",dir:M.dir,onContextMenu:K=>K.preventDefault(),...P,...Se,onPlaced:()=>ce(!0),ref:H,style:{display:"flex",flexDirection:"column",outline:"none",...P.style},onKeyDown:Je(P.onKeyDown,K=>{const fe=K.ctrlKey||K.altKey||K.metaKey;if(K.key==="Tab"&&K.preventDefault(),!fe&&K.key.length===1&&N(K.key),["ArrowUp","ArrowDown","Home","End"].includes(K.key)){let be=X().filter(Te=>!Te.disabled).map(Te=>Te.ref.current);if(["ArrowUp","End"].includes(K.key)&&(be=be.slice().reverse()),["ArrowUp","ArrowDown"].includes(K.key)){const Te=K.target,Oe=be.indexOf(Te);be=be.slice(Oe+1)}setTimeout(()=>ae(be)),K.preventDefault()}})})})})})})});Gv.displayName=tC;var rC="SelectItemAlignedPosition",Yv=g.forwardRef((n,r)=>{const{__scopeSelect:i,onPlaced:l,...u}=n,c=$r(So,i),f=Vr(So,i),[p,h]=g.useState(null),[v,w]=g.useState(null),x=ct(r,H=>w(H)),E=ha(i),y=g.useRef(!1),O=g.useRef(!0),{viewport:S,selectedItem:C,selectedItemText:P,focusSelectedItem:M}=f,R=g.useCallback(()=>{if(c.trigger&&c.valueNode&&p&&v&&S&&C&&P){const H=c.trigger.getBoundingClientRect(),G=v.getBoundingClientRect(),Z=c.valueNode.getBoundingClientRect(),te=P.getBoundingClientRect();if(c.dir!=="rtl"){const Te=te.left-G.left,Oe=Z.left-Te,Ge=H.left-Oe,dt=H.width+Ge,yn=Math.max(dt,G.width),Xt=window.innerWidth-cn,Zt=Eh(Oe,[cn,Math.max(cn,Xt-yn)]);p.style.minWidth=dt+"px",p.style.left=Zt+"px"}else{const Te=G.right-te.right,Oe=window.innerWidth-Z.right-Te,Ge=window.innerWidth-H.right-Oe,dt=H.width+Ge,yn=Math.max(dt,G.width),Xt=window.innerWidth-cn,Zt=Eh(Oe,[cn,Math.max(cn,Xt-yn)]);p.style.minWidth=dt+"px",p.style.right=Zt+"px"}const pe=E(),X=window.innerHeight-cn*2,ye=S.scrollHeight,ce=window.getComputedStyle(v),xe=parseInt(ce.borderTopWidth,10),ae=parseInt(ce.paddingTop,10),ie=parseInt(ce.borderBottomWidth,10),j=parseInt(ce.paddingBottom,10),B=xe+ae+ye+j+ie,W=Math.min(C.offsetHeight*5,B),N=window.getComputedStyle(S),F=parseInt(N.paddingTop,10),ne=parseInt(N.paddingBottom,10),re=H.top+H.height/2-cn,me=X-re,Se=C.offsetHeight/2,K=C.offsetTop+Se,fe=xe+ae+K,Ce=B-fe;if(fe<=re){const Te=pe.length>0&&C===pe[pe.length-1].ref.current;p.style.bottom="0px";const Oe=v.clientHeight-S.offsetTop-S.offsetHeight,Ge=Math.max(me,Se+(Te?ne:0)+Oe+ie),dt=fe+Ge;p.style.height=dt+"px"}else{const Te=pe.length>0&&C===pe[0].ref.current;p.style.top="0px";const Ge=Math.max(re,xe+S.offsetTop+(Te?F:0)+Se)+Ce;p.style.height=Ge+"px",S.scrollTop=fe-re+S.offsetTop}p.style.margin=`${cn}px 0`,p.style.minHeight=W+"px",p.style.maxHeight=X+"px",l==null||l(),requestAnimationFrame(()=>y.current=!0)}},[E,c.trigger,c.valueNode,p,v,S,C,P,c.dir,l]);It(()=>R(),[R]);const[L,z]=g.useState();It(()=>{v&&z(window.getComputedStyle(v).zIndex)},[v]);const U=g.useCallback(H=>{H&&O.current===!0&&(R(),M==null||M(),O.current=!1)},[R,M]);return ee.jsx(iC,{scope:i,contentWrapper:p,shouldExpandOnScrollRef:y,onScrollButtonChange:U,children:ee.jsx("div",{ref:h,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:L},children:ee.jsx(Xe.div,{...u,ref:x,style:{boxSizing:"border-box",maxHeight:"100%",...u.style}})})})});Yv.displayName=rC;var oC="SelectPopperPosition",zc=g.forwardRef((n,r)=>{const{__scopeSelect:i,align:l="start",collisionPadding:u=cn,...c}=n,f=ma(i);return ee.jsx(JS,{...f,...c,ref:r,align:l,collisionPadding:u,style:{boxSizing:"border-box",...c.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});zc.displayName=oC;var[iC,md]=Si(So,{}),jc="SelectViewport",qv=g.forwardRef((n,r)=>{const{__scopeSelect:i,nonce:l,...u}=n,c=Vr(jc,i),f=md(jc,i),p=ct(r,c.onViewportChange),h=g.useRef(0);return ee.jsxs(ee.Fragment,{children:[ee.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),ee.jsx(pa.Slot,{scope:i,children:ee.jsx(Xe.div,{"data-radix-select-viewport":"",role:"presentation",...u,ref:p,style:{position:"relative",flex:1,overflow:"hidden auto",...u.style},onScroll:Je(u.onScroll,v=>{const w=v.currentTarget,{contentWrapper:x,shouldExpandOnScrollRef:E}=f;if(E!=null&&E.current&&x){const y=Math.abs(h.current-w.scrollTop);if(y>0){const O=window.innerHeight-cn*2,S=parseFloat(x.style.minHeight),C=parseFloat(x.style.height),P=Math.max(S,C);if(P<O){const M=P+y,R=Math.min(O,M),L=M-R;x.style.height=R+"px",x.style.bottom==="0px"&&(w.scrollTop=L>0?L:0,x.style.justifyContent="flex-end")}}}h.current=w.scrollTop})})})]})});qv.displayName=jc;var Xv="SelectGroup",[sC,lC]=Si(Xv),aC=g.forwardRef((n,r)=>{const{__scopeSelect:i,...l}=n,u=sd();return ee.jsx(sC,{scope:i,id:u,children:ee.jsx(Xe.div,{role:"group","aria-labelledby":u,...l,ref:r})})});aC.displayName=Xv;var Zv="SelectLabel",Jv=g.forwardRef((n,r)=>{const{__scopeSelect:i,...l}=n,u=lC(Zv,i);return ee.jsx(Xe.div,{id:u.id,...l,ref:r})});Jv.displayName=Zv;var ia="SelectItem",[uC,ey]=Si(ia),ty=g.forwardRef((n,r)=>{const{__scopeSelect:i,value:l,disabled:u=!1,textValue:c,...f}=n,p=$r(ia,i),h=Vr(ia,i),v=p.value===l,[w,x]=g.useState(c??""),[E,y]=g.useState(!1),O=ct(r,M=>{var R;return(R=h.itemRefCallback)==null?void 0:R.call(h,M,l,u)}),S=sd(),C=g.useRef("touch"),P=()=>{u||(p.onValueChange(l),p.onOpenChange(!1))};if(l==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return ee.jsx(uC,{scope:i,value:l,disabled:u,textId:S,isSelected:v,onItemTextChange:g.useCallback(M=>{x(R=>R||((M==null?void 0:M.textContent)??"").trim())},[]),children:ee.jsx(pa.ItemSlot,{scope:i,value:l,disabled:u,textValue:w,children:ee.jsx(Xe.div,{role:"option","aria-labelledby":S,"data-highlighted":E?"":void 0,"aria-selected":v&&E,"data-state":v?"checked":"unchecked","aria-disabled":u||void 0,"data-disabled":u?"":void 0,tabIndex:u?void 0:-1,...f,ref:O,onFocus:Je(f.onFocus,()=>y(!0)),onBlur:Je(f.onBlur,()=>y(!1)),onClick:Je(f.onClick,()=>{C.current!=="mouse"&&P()}),onPointerUp:Je(f.onPointerUp,()=>{C.current==="mouse"&&P()}),onPointerDown:Je(f.onPointerDown,M=>{C.current=M.pointerType}),onPointerMove:Je(f.onPointerMove,M=>{var R;C.current=M.pointerType,u?(R=h.onItemLeave)==null||R.call(h):C.current==="mouse"&&M.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Je(f.onPointerLeave,M=>{var R;M.currentTarget===document.activeElement&&((R=h.onItemLeave)==null||R.call(h))}),onKeyDown:Je(f.onKeyDown,M=>{var L;((L=h.searchRef)==null?void 0:L.current)!==""&&M.key===" "||(G2.includes(M.key)&&P(),M.key===" "&&M.preventDefault())})})})})});ty.displayName=ia;var us="SelectItemText",ny=g.forwardRef((n,r)=>{const{__scopeSelect:i,className:l,style:u,...c}=n,f=$r(us,i),p=Vr(us,i),h=ey(us,i),v=Z2(us,i),[w,x]=g.useState(null),E=ct(r,P=>x(P),h.onItemTextChange,P=>{var M;return(M=p.itemTextRefCallback)==null?void 0:M.call(p,P,h.value,h.disabled)}),y=w==null?void 0:w.textContent,O=g.useMemo(()=>ee.jsx("option",{value:h.value,disabled:h.disabled,children:y},h.value),[h.disabled,h.value,y]),{onNativeOptionAdd:S,onNativeOptionRemove:C}=v;return It(()=>(S(O),()=>C(O)),[S,C,O]),ee.jsxs(ee.Fragment,{children:[ee.jsx(Xe.span,{id:h.textId,...c,ref:E}),h.isSelected&&f.valueNode&&!f.valueNodeHasChildren?xs.createPortal(c.children,f.valueNode):null]})});ny.displayName=us;var ry="SelectItemIndicator",oy=g.forwardRef((n,r)=>{const{__scopeSelect:i,...l}=n;return ey(ry,i).isSelected?ee.jsx(Xe.span,{"aria-hidden":!0,...l,ref:r}):null});oy.displayName=ry;var Bc="SelectScrollUpButton",iy=g.forwardRef((n,r)=>{const i=Vr(Bc,n.__scopeSelect),l=md(Bc,n.__scopeSelect),[u,c]=g.useState(!1),f=ct(r,l.onScrollButtonChange);return It(()=>{if(i.viewport&&i.isPositioned){let p=function(){const v=h.scrollTop>0;c(v)};const h=i.viewport;return p(),h.addEventListener("scroll",p),()=>h.removeEventListener("scroll",p)}},[i.viewport,i.isPositioned]),u?ee.jsx(ly,{...n,ref:f,onAutoScroll:()=>{const{viewport:p,selectedItem:h}=i;p&&h&&(p.scrollTop=p.scrollTop-h.offsetHeight)}}):null});iy.displayName=Bc;var Uc="SelectScrollDownButton",sy=g.forwardRef((n,r)=>{const i=Vr(Uc,n.__scopeSelect),l=md(Uc,n.__scopeSelect),[u,c]=g.useState(!1),f=ct(r,l.onScrollButtonChange);return It(()=>{if(i.viewport&&i.isPositioned){let p=function(){const v=h.scrollHeight-h.clientHeight,w=Math.ceil(h.scrollTop)<v;c(w)};const h=i.viewport;return p(),h.addEventListener("scroll",p),()=>h.removeEventListener("scroll",p)}},[i.viewport,i.isPositioned]),u?ee.jsx(ly,{...n,ref:f,onAutoScroll:()=>{const{viewport:p,selectedItem:h}=i;p&&h&&(p.scrollTop=p.scrollTop+h.offsetHeight)}}):null});sy.displayName=Uc;var ly=g.forwardRef((n,r)=>{const{__scopeSelect:i,onAutoScroll:l,...u}=n,c=Vr("SelectScrollButton",i),f=g.useRef(null),p=ha(i),h=g.useCallback(()=>{f.current!==null&&(window.clearInterval(f.current),f.current=null)},[]);return g.useEffect(()=>()=>h(),[h]),It(()=>{var w;const v=p().find(x=>x.ref.current===document.activeElement);(w=v==null?void 0:v.ref.current)==null||w.scrollIntoView({block:"nearest"})},[p]),ee.jsx(Xe.div,{"aria-hidden":!0,...u,ref:r,style:{flexShrink:0,...u.style},onPointerDown:Je(u.onPointerDown,()=>{f.current===null&&(f.current=window.setInterval(l,50))}),onPointerMove:Je(u.onPointerMove,()=>{var v;(v=c.onItemLeave)==null||v.call(c),f.current===null&&(f.current=window.setInterval(l,50))}),onPointerLeave:Je(u.onPointerLeave,()=>{h()})})}),cC="SelectSeparator",ay=g.forwardRef((n,r)=>{const{__scopeSelect:i,...l}=n;return ee.jsx(Xe.div,{"aria-hidden":!0,...l,ref:r})});ay.displayName=cC;var Hc="SelectArrow",dC=g.forwardRef((n,r)=>{const{__scopeSelect:i,...l}=n,u=ma(i),c=$r(Hc,i),f=Vr(Hc,i);return c.open&&f.position==="popper"?ee.jsx(e2,{...u,...l,ref:r}):null});dC.displayName=Hc;var fC="SelectBubbleInput",uy=g.forwardRef(({__scopeSelect:n,value:r,...i},l)=>{const u=g.useRef(null),c=ct(l,u),f=i2(r);return g.useEffect(()=>{const p=u.current;if(!p)return;const h=window.HTMLSelectElement.prototype,w=Object.getOwnPropertyDescriptor(h,"value").set;if(f!==r&&w){const x=new Event("change",{bubbles:!0});w.call(p,r),p.dispatchEvent(x)}},[f,r]),ee.jsx(Xe.select,{...i,style:{...Tv,...i.style},ref:c,defaultValue:r})});uy.displayName=fC;function cy(n){return n===""||n===void 0}function dy(n){const r=go(n),i=g.useRef(""),l=g.useRef(0),u=g.useCallback(f=>{const p=i.current+f;r(p),(function h(v){i.current=v,window.clearTimeout(l.current),v!==""&&(l.current=window.setTimeout(()=>h(""),1e3))})(p)},[r]),c=g.useCallback(()=>{i.current="",window.clearTimeout(l.current)},[]);return g.useEffect(()=>()=>window.clearTimeout(l.current),[]),[i,u,c]}function fy(n,r,i){const u=r.length>1&&Array.from(r).every(v=>v===r[0])?r[0]:r,c=i?n.indexOf(i):-1;let f=pC(n,Math.max(c,0));u.length===1&&(f=f.filter(v=>v!==i));const h=f.find(v=>v.textValue.toLowerCase().startsWith(u.toLowerCase()));return h!==i?h:void 0}function pC(n,r){return n.map((i,l)=>n[(r+l)%n.length])}var ik=jv,sk=Uv,lk=$v,ak=Vv,uk=Wv,ck=Qv,dk=qv,fk=Jv,pk=ty,hk=ny,mk=oy,vk=iy,yk=sy,gk=ay;const Yh=n=>{let r;const i=new Set,l=(v,w)=>{const x=typeof v=="function"?v(r):v;if(!Object.is(x,r)){const E=r;r=w??(typeof x!="object"||x===null)?x:Object.assign({},r,x),i.forEach(y=>y(r,E))}},u=()=>r,p={setState:l,getState:u,getInitialState:()=>h,subscribe:v=>(i.add(v),()=>i.delete(v))},h=r=n(l,u,p);return p},hC=(n=>n?Yh(n):Yh),mC=n=>n;function vC(n,r=mC){const i=q.useSyncExternalStore(n.subscribe,q.useCallback(()=>r(n.getState()),[n,r]),q.useCallback(()=>r(n.getInitialState()),[n,r]));return q.useDebugValue(i),i}const qh=n=>{const r=hC(n),i=l=>vC(r,l);return Object.assign(i,r),i},wk=(n=>n?qh(n):qh);var yC=n=>{switch(n){case"success":return xC;case"info":return CC;case"warning":return SC;case"error":return EC;default:return null}},gC=Array(12).fill(0),wC=({visible:n,className:r})=>q.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":n},q.createElement("div",{className:"sonner-spinner"},gC.map((i,l)=>q.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${l}`})))),xC=q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},q.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),SC=q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},q.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),CC=q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},q.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),EC=q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},q.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),kC=q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},q.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),q.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),bC=()=>{let[n,r]=q.useState(document.hidden);return q.useEffect(()=>{let i=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",i),()=>window.removeEventListener("visibilitychange",i)},[]),n},$c=1,RC=class{constructor(){this.subscribe=n=>(this.subscribers.push(n),()=>{let r=this.subscribers.indexOf(n);this.subscribers.splice(r,1)}),this.publish=n=>{this.subscribers.forEach(r=>r(n))},this.addToast=n=>{this.publish(n),this.toasts=[...this.toasts,n]},this.create=n=>{var r;let{message:i,...l}=n,u=typeof(n==null?void 0:n.id)=="number"||((r=n.id)==null?void 0:r.length)>0?n.id:$c++,c=this.toasts.find(p=>p.id===u),f=n.dismissible===void 0?!0:n.dismissible;return this.dismissedToasts.has(u)&&this.dismissedToasts.delete(u),c?this.toasts=this.toasts.map(p=>p.id===u?(this.publish({...p,...n,id:u,title:i}),{...p,...n,id:u,dismissible:f,title:i}):p):this.addToast({title:i,...l,dismissible:f,id:u}),u},this.dismiss=n=>(this.dismissedToasts.add(n),n||this.toasts.forEach(r=>{this.subscribers.forEach(i=>i({id:r.id,dismiss:!0}))}),this.subscribers.forEach(r=>r({id:n,dismiss:!0})),n),this.message=(n,r)=>this.create({...r,message:n}),this.error=(n,r)=>this.create({...r,message:n,type:"error"}),this.success=(n,r)=>this.create({...r,type:"success",message:n}),this.info=(n,r)=>this.create({...r,type:"info",message:n}),this.warning=(n,r)=>this.create({...r,type:"warning",message:n}),this.loading=(n,r)=>this.create({...r,type:"loading",message:n}),this.promise=(n,r)=>{if(!r)return;let i;r.loading!==void 0&&(i=this.create({...r,promise:n,type:"loading",message:r.loading,description:typeof r.description!="function"?r.description:void 0}));let l=n instanceof Promise?n:n(),u=i!==void 0,c,f=l.then(async h=>{if(c=["resolve",h],q.isValidElement(h))u=!1,this.create({id:i,type:"default",message:h});else if(TC(h)&&!h.ok){u=!1;let v=typeof r.error=="function"?await r.error(`HTTP error! status: ${h.status}`):r.error,w=typeof r.description=="function"?await r.description(`HTTP error! status: ${h.status}`):r.description;this.create({id:i,type:"error",message:v,description:w})}else if(r.success!==void 0){u=!1;let v=typeof r.success=="function"?await r.success(h):r.success,w=typeof r.description=="function"?await r.description(h):r.description;this.create({id:i,type:"success",message:v,description:w})}}).catch(async h=>{if(c=["reject",h],r.error!==void 0){u=!1;let v=typeof r.error=="function"?await r.error(h):r.error,w=typeof r.description=="function"?await r.description(h):r.description;this.create({id:i,type:"error",message:v,description:w})}}).finally(()=>{var h;u&&(this.dismiss(i),i=void 0),(h=r.finally)==null||h.call(r)}),p=()=>new Promise((h,v)=>f.then(()=>c[0]==="reject"?v(c[1]):h(c[1])).catch(v));return typeof i!="string"&&typeof i!="number"?{unwrap:p}:Object.assign(i,{unwrap:p})},this.custom=(n,r)=>{let i=(r==null?void 0:r.id)||$c++;return this.create({jsx:n(i),id:i,...r}),i},this.getActiveToasts=()=>this.toasts.filter(n=>!this.dismissedToasts.has(n.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Lt=new RC,PC=(n,r)=>{let i=(r==null?void 0:r.id)||$c++;return Lt.addToast({title:n,...r,id:i}),i},TC=n=>n&&typeof n=="object"&&"ok"in n&&typeof n.ok=="boolean"&&"status"in n&&typeof n.status=="number",MC=PC,OC=()=>Lt.toasts,NC=()=>Lt.getActiveToasts(),xk=Object.assign(MC,{success:Lt.success,info:Lt.info,warning:Lt.warning,error:Lt.error,custom:Lt.custom,message:Lt.message,promise:Lt.promise,dismiss:Lt.dismiss,loading:Lt.loading},{getHistory:OC,getToasts:NC});function _C(n,{insertAt:r}={}){if(typeof document>"u")return;let i=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css",r==="top"&&i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),l.styleSheet?l.styleSheet.cssText=n:l.appendChild(document.createTextNode(n))}_C(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
|
|
382
|
-
`);function Vl(n){return n.label!==void 0}var LC=3,IC="32px",AC="16px",Xh=4e3,DC=356,FC=14,zC=20,jC=200;function un(...n){return n.filter(Boolean).join(" ")}function BC(n){let[r,i]=n.split("-"),l=[];return r&&l.push(r),i&&l.push(i),l}var UC=n=>{var r,i,l,u,c,f,p,h,v,w,x;let{invert:E,toast:y,unstyled:O,interacting:S,setHeights:C,visibleToasts:P,heights:M,index:R,toasts:L,expanded:z,removeToast:U,defaultRichColors:H,closeButton:G,style:Z,cancelButtonStyle:te,actionButtonStyle:pe,className:X="",descriptionClassName:ye="",duration:ce,position:xe,gap:ae,loadingIcon:ie,expandByDefault:j,classNames:B,icons:W,closeButtonAriaLabel:N="Close toast",pauseWhenPageIsHidden:F}=n,[ne,re]=q.useState(null),[me,Se]=q.useState(null),[K,fe]=q.useState(!1),[Ce,be]=q.useState(!1),[Te,Oe]=q.useState(!1),[Ge,dt]=q.useState(!1),[yn,Xt]=q.useState(!1),[Zt,or]=q.useState(0),[gn,ir]=q.useState(0),Ht=q.useRef(y.duration||ce||Xh),Co=q.useRef(null),wn=q.useRef(null),Cs=R===0,Es=R+1<=P,yt=y.type,xn=y.dismissible!==!1,Eo=y.className||"",ks=y.descriptionClassName||"",Sn=q.useMemo(()=>M.findIndex(ke=>ke.toastId===y.id)||0,[M,y.id]),Wr=q.useMemo(()=>{var ke;return(ke=y.closeButton)!=null?ke:G},[y.closeButton,G]),bs=q.useMemo(()=>y.duration||ce||Xh,[y.duration,ce]),ko=q.useRef(0),zn=q.useRef(0),Rs=q.useRef(0),Cn=q.useRef(null),[Ci,Ei]=xe.split("-"),bo=q.useMemo(()=>M.reduce((ke,Ie,Fe)=>Fe>=Sn?ke:ke+Ie.height,0),[M,Sn]),Ro=bC(),sr=y.invert||E,En=yt==="loading";zn.current=q.useMemo(()=>Sn*ae+bo,[Sn,bo]),q.useEffect(()=>{Ht.current=bs},[bs]),q.useEffect(()=>{fe(!0)},[]),q.useEffect(()=>{let ke=wn.current;if(ke){let Ie=ke.getBoundingClientRect().height;return ir(Ie),C(Fe=>[{toastId:y.id,height:Ie,position:y.position},...Fe]),()=>C(Fe=>Fe.filter(gt=>gt.toastId!==y.id))}},[C,y.id]),q.useLayoutEffect(()=>{if(!K)return;let ke=wn.current,Ie=ke.style.height;ke.style.height="auto";let Fe=ke.getBoundingClientRect().height;ke.style.height=Ie,ir(Fe),C(gt=>gt.find(Et=>Et.toastId===y.id)?gt.map(Et=>Et.toastId===y.id?{...Et,height:Fe}:Et):[{toastId:y.id,height:Fe,position:y.position},...gt])},[K,y.title,y.description,C,y.id]);let Jt=q.useCallback(()=>{be(!0),or(zn.current),C(ke=>ke.filter(Ie=>Ie.toastId!==y.id)),setTimeout(()=>{U(y)},jC)},[y,U,C,zn]);q.useEffect(()=>{if(y.promise&&yt==="loading"||y.duration===1/0||y.type==="loading")return;let ke;return z||S||F&&Ro?(()=>{if(Rs.current<ko.current){let Ie=new Date().getTime()-ko.current;Ht.current=Ht.current-Ie}Rs.current=new Date().getTime()})():Ht.current!==1/0&&(ko.current=new Date().getTime(),ke=setTimeout(()=>{var Ie;(Ie=y.onAutoClose)==null||Ie.call(y,y),Jt()},Ht.current)),()=>clearTimeout(ke)},[z,S,y,yt,F,Ro,Jt]),q.useEffect(()=>{y.delete&&Jt()},[Jt,y.delete]);function Ps(){var ke,Ie,Fe;return W!=null&&W.loading?q.createElement("div",{className:un(B==null?void 0:B.loader,(ke=y==null?void 0:y.classNames)==null?void 0:ke.loader,"sonner-loader"),"data-visible":yt==="loading"},W.loading):ie?q.createElement("div",{className:un(B==null?void 0:B.loader,(Ie=y==null?void 0:y.classNames)==null?void 0:Ie.loader,"sonner-loader"),"data-visible":yt==="loading"},ie):q.createElement(wC,{className:un(B==null?void 0:B.loader,(Fe=y==null?void 0:y.classNames)==null?void 0:Fe.loader),visible:yt==="loading"})}return q.createElement("li",{tabIndex:0,ref:wn,className:un(X,Eo,B==null?void 0:B.toast,(r=y==null?void 0:y.classNames)==null?void 0:r.toast,B==null?void 0:B.default,B==null?void 0:B[yt],(i=y==null?void 0:y.classNames)==null?void 0:i[yt]),"data-sonner-toast":"","data-rich-colors":(l=y.richColors)!=null?l:H,"data-styled":!(y.jsx||y.unstyled||O),"data-mounted":K,"data-promise":!!y.promise,"data-swiped":yn,"data-removed":Ce,"data-visible":Es,"data-y-position":Ci,"data-x-position":Ei,"data-index":R,"data-front":Cs,"data-swiping":Te,"data-dismissible":xn,"data-type":yt,"data-invert":sr,"data-swipe-out":Ge,"data-swipe-direction":me,"data-expanded":!!(z||j&&K),style:{"--index":R,"--toasts-before":R,"--z-index":L.length-R,"--offset":`${Ce?Zt:zn.current}px`,"--initial-height":j?"auto":`${gn}px`,...Z,...y.style},onDragEnd:()=>{Oe(!1),re(null),Cn.current=null},onPointerDown:ke=>{En||!xn||(Co.current=new Date,or(zn.current),ke.target.setPointerCapture(ke.pointerId),ke.target.tagName!=="BUTTON"&&(Oe(!0),Cn.current={x:ke.clientX,y:ke.clientY}))},onPointerUp:()=>{var ke,Ie,Fe,gt;if(Ge||!xn)return;Cn.current=null;let Et=Number(((ke=wn.current)==null?void 0:ke.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),kt=Number(((Ie=wn.current)==null?void 0:Ie.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),en=new Date().getTime()-((Fe=Co.current)==null?void 0:Fe.getTime()),lt=ne==="x"?Et:kt,kn=Math.abs(lt)/en;if(Math.abs(lt)>=zC||kn>.11){or(zn.current),(gt=y.onDismiss)==null||gt.call(y,y),Se(ne==="x"?Et>0?"right":"left":kt>0?"down":"up"),Jt(),dt(!0),Xt(!1);return}Oe(!1),re(null)},onPointerMove:ke=>{var Ie,Fe,gt,Et;if(!Cn.current||!xn||((Ie=window.getSelection())==null?void 0:Ie.toString().length)>0)return;let kt=ke.clientY-Cn.current.y,en=ke.clientX-Cn.current.x,lt=(Fe=n.swipeDirections)!=null?Fe:BC(xe);!ne&&(Math.abs(en)>1||Math.abs(kt)>1)&&re(Math.abs(en)>Math.abs(kt)?"x":"y");let kn={x:0,y:0};ne==="y"?(lt.includes("top")||lt.includes("bottom"))&&(lt.includes("top")&&kt<0||lt.includes("bottom")&&kt>0)&&(kn.y=kt):ne==="x"&&(lt.includes("left")||lt.includes("right"))&&(lt.includes("left")&&en<0||lt.includes("right")&&en>0)&&(kn.x=en),(Math.abs(kn.x)>0||Math.abs(kn.y)>0)&&Xt(!0),(gt=wn.current)==null||gt.style.setProperty("--swipe-amount-x",`${kn.x}px`),(Et=wn.current)==null||Et.style.setProperty("--swipe-amount-y",`${kn.y}px`)}},Wr&&!y.jsx?q.createElement("button",{"aria-label":N,"data-disabled":En,"data-close-button":!0,onClick:En||!xn?()=>{}:()=>{var ke;Jt(),(ke=y.onDismiss)==null||ke.call(y,y)},className:un(B==null?void 0:B.closeButton,(u=y==null?void 0:y.classNames)==null?void 0:u.closeButton)},(c=W==null?void 0:W.close)!=null?c:kC):null,y.jsx||g.isValidElement(y.title)?y.jsx?y.jsx:typeof y.title=="function"?y.title():y.title:q.createElement(q.Fragment,null,yt||y.icon||y.promise?q.createElement("div",{"data-icon":"",className:un(B==null?void 0:B.icon,(f=y==null?void 0:y.classNames)==null?void 0:f.icon)},y.promise||y.type==="loading"&&!y.icon?y.icon||Ps():null,y.type!=="loading"?y.icon||(W==null?void 0:W[yt])||yC(yt):null):null,q.createElement("div",{"data-content":"",className:un(B==null?void 0:B.content,(p=y==null?void 0:y.classNames)==null?void 0:p.content)},q.createElement("div",{"data-title":"",className:un(B==null?void 0:B.title,(h=y==null?void 0:y.classNames)==null?void 0:h.title)},typeof y.title=="function"?y.title():y.title),y.description?q.createElement("div",{"data-description":"",className:un(ye,ks,B==null?void 0:B.description,(v=y==null?void 0:y.classNames)==null?void 0:v.description)},typeof y.description=="function"?y.description():y.description):null),g.isValidElement(y.cancel)?y.cancel:y.cancel&&Vl(y.cancel)?q.createElement("button",{"data-button":!0,"data-cancel":!0,style:y.cancelButtonStyle||te,onClick:ke=>{var Ie,Fe;Vl(y.cancel)&&xn&&((Fe=(Ie=y.cancel).onClick)==null||Fe.call(Ie,ke),Jt())},className:un(B==null?void 0:B.cancelButton,(w=y==null?void 0:y.classNames)==null?void 0:w.cancelButton)},y.cancel.label):null,g.isValidElement(y.action)?y.action:y.action&&Vl(y.action)?q.createElement("button",{"data-button":!0,"data-action":!0,style:y.actionButtonStyle||pe,onClick:ke=>{var Ie,Fe;Vl(y.action)&&((Fe=(Ie=y.action).onClick)==null||Fe.call(Ie,ke),!ke.defaultPrevented&&Jt())},className:un(B==null?void 0:B.actionButton,(x=y==null?void 0:y.classNames)==null?void 0:x.actionButton)},y.action.label):null))};function Zh(){if(typeof window>"u"||typeof document>"u")return"ltr";let n=document.documentElement.getAttribute("dir");return n==="auto"||!n?window.getComputedStyle(document.documentElement).direction:n}function HC(n,r){let i={};return[n,r].forEach((l,u)=>{let c=u===1,f=c?"--mobile-offset":"--offset",p=c?AC:IC;function h(v){["top","right","bottom","left"].forEach(w=>{i[`${f}-${w}`]=typeof v=="number"?`${v}px`:v})}typeof l=="number"||typeof l=="string"?h(l):typeof l=="object"?["top","right","bottom","left"].forEach(v=>{l[v]===void 0?i[`${f}-${v}`]=p:i[`${f}-${v}`]=typeof l[v]=="number"?`${l[v]}px`:l[v]}):h(p)}),i}var Sk=g.forwardRef(function(n,r){let{invert:i,position:l="bottom-right",hotkey:u=["altKey","KeyT"],expand:c,closeButton:f,className:p,offset:h,mobileOffset:v,theme:w="light",richColors:x,duration:E,style:y,visibleToasts:O=LC,toastOptions:S,dir:C=Zh(),gap:P=FC,loadingIcon:M,icons:R,containerAriaLabel:L="Notifications",pauseWhenPageIsHidden:z}=n,[U,H]=q.useState([]),G=q.useMemo(()=>Array.from(new Set([l].concat(U.filter(F=>F.position).map(F=>F.position)))),[U,l]),[Z,te]=q.useState([]),[pe,X]=q.useState(!1),[ye,ce]=q.useState(!1),[xe,ae]=q.useState(w!=="system"?w:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),ie=q.useRef(null),j=u.join("+").replace(/Key/g,"").replace(/Digit/g,""),B=q.useRef(null),W=q.useRef(!1),N=q.useCallback(F=>{H(ne=>{var re;return(re=ne.find(me=>me.id===F.id))!=null&&re.delete||Lt.dismiss(F.id),ne.filter(({id:me})=>me!==F.id)})},[]);return q.useEffect(()=>Lt.subscribe(F=>{if(F.dismiss){H(ne=>ne.map(re=>re.id===F.id?{...re,delete:!0}:re));return}setTimeout(()=>{_m.flushSync(()=>{H(ne=>{let re=ne.findIndex(me=>me.id===F.id);return re!==-1?[...ne.slice(0,re),{...ne[re],...F},...ne.slice(re+1)]:[F,...ne]})})})}),[]),q.useEffect(()=>{if(w!=="system"){ae(w);return}if(w==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ae("dark"):ae("light")),typeof window>"u")return;let F=window.matchMedia("(prefers-color-scheme: dark)");try{F.addEventListener("change",({matches:ne})=>{ae(ne?"dark":"light")})}catch{F.addListener(({matches:re})=>{try{ae(re?"dark":"light")}catch(me){console.error(me)}})}},[w]),q.useEffect(()=>{U.length<=1&&X(!1)},[U]),q.useEffect(()=>{let F=ne=>{var re,me;u.every(Se=>ne[Se]||ne.code===Se)&&(X(!0),(re=ie.current)==null||re.focus()),ne.code==="Escape"&&(document.activeElement===ie.current||(me=ie.current)!=null&&me.contains(document.activeElement))&&X(!1)};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[u]),q.useEffect(()=>{if(ie.current)return()=>{B.current&&(B.current.focus({preventScroll:!0}),B.current=null,W.current=!1)}},[ie.current]),q.createElement("section",{ref:r,"aria-label":`${L} ${j}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},G.map((F,ne)=>{var re;let[me,Se]=F.split("-");return U.length?q.createElement("ol",{key:F,dir:C==="auto"?Zh():C,tabIndex:-1,ref:ie,className:p,"data-sonner-toaster":!0,"data-theme":xe,"data-y-position":me,"data-lifted":pe&&U.length>1&&!c,"data-x-position":Se,style:{"--front-toast-height":`${((re=Z[0])==null?void 0:re.height)||0}px`,"--width":`${DC}px`,"--gap":`${P}px`,...y,...HC(h,v)},onBlur:K=>{W.current&&!K.currentTarget.contains(K.relatedTarget)&&(W.current=!1,B.current&&(B.current.focus({preventScroll:!0}),B.current=null))},onFocus:K=>{K.target instanceof HTMLElement&&K.target.dataset.dismissible==="false"||W.current||(W.current=!0,B.current=K.relatedTarget)},onMouseEnter:()=>X(!0),onMouseMove:()=>X(!0),onMouseLeave:()=>{ye||X(!1)},onDragEnd:()=>X(!1),onPointerDown:K=>{K.target instanceof HTMLElement&&K.target.dataset.dismissible==="false"||ce(!0)},onPointerUp:()=>ce(!1)},U.filter(K=>!K.position&&ne===0||K.position===F).map((K,fe)=>{var Ce,be;return q.createElement(UC,{key:K.id,icons:R,index:fe,toast:K,defaultRichColors:x,duration:(Ce=S==null?void 0:S.duration)!=null?Ce:E,className:S==null?void 0:S.className,descriptionClassName:S==null?void 0:S.descriptionClassName,invert:i,visibleToasts:O,closeButton:(be=S==null?void 0:S.closeButton)!=null?be:f,interacting:ye,position:F,style:S==null?void 0:S.style,unstyled:S==null?void 0:S.unstyled,classNames:S==null?void 0:S.classNames,cancelButtonStyle:S==null?void 0:S.cancelButtonStyle,actionButtonStyle:S==null?void 0:S.actionButtonStyle,removeToast:N,toasts:U.filter(Te=>Te.position==K.position),heights:Z.filter(Te=>Te.position==K.position),setHeights:te,expandByDefault:c,gap:P,loadingIcon:M,expanded:pe,pauseWhenPageIsHidden:z,swipeDirections:n.swipeDirections})})):null}))});export{Sk as $,nE as A,aE as B,cE as C,VC as D,GC as E,wE as F,xE as G,kE as H,ak as I,GE as J,TE as K,fk as L,NE as M,I1 as N,cm as O,uk as P,qC as Q,ik as R,vk as S,sk as T,JE as U,dk as V,lE as W,ek as X,qE as Y,$E as Z,SE as _,dE as a,gE as a0,VE as a1,fE as a2,UE as a3,jE as a4,_E as a5,ZE as a6,WE as a7,vE as a8,yE as a9,gv as aA,Pv as aB,id as aC,tv as aD,JS as aE,ok as aF,rk as aG,e2 as aH,Em as aI,WC as aJ,IE as aK,It as aL,c2 as aM,zv as aN,Sx as aO,rv as aP,ea as aQ,nk as aR,OE as aS,DE as aT,rE as aU,CE as aV,RE as aa,EE as ab,tk as ac,ME as ad,xk as ae,XE as af,QE as ag,iE as ah,KE as ai,mE as aj,oE as ak,HE as al,bE as am,pE as an,FE as ao,BE as ap,ZC as aq,$m as ar,JC as as,sd as at,$h as au,XS as av,ct as aw,ZS as ax,Xe as ay,Je as az,yk as b,eE as c,ck as d,pk as e,mk as f,uE as g,hk as h,gk as i,ee as j,lk as k,hE as l,YE as m,LE as n,zE as o,AE as p,PE as q,g as r,sE as s,tE as t,wk as u,Hr as v,XC as w,KC as x,u1 as y,QC as z};
|
|
382
|
+
`);function Vl(n){return n.label!==void 0}var LC=3,IC="32px",AC="16px",Xh=4e3,DC=356,FC=14,zC=20,jC=200;function un(...n){return n.filter(Boolean).join(" ")}function BC(n){let[r,i]=n.split("-"),l=[];return r&&l.push(r),i&&l.push(i),l}var UC=n=>{var r,i,l,u,c,f,p,h,v,w,x;let{invert:E,toast:y,unstyled:O,interacting:S,setHeights:C,visibleToasts:P,heights:M,index:R,toasts:L,expanded:z,removeToast:U,defaultRichColors:H,closeButton:G,style:Z,cancelButtonStyle:te,actionButtonStyle:pe,className:X="",descriptionClassName:ye="",duration:ce,position:xe,gap:ae,loadingIcon:ie,expandByDefault:j,classNames:B,icons:W,closeButtonAriaLabel:N="Close toast",pauseWhenPageIsHidden:F}=n,[ne,re]=q.useState(null),[me,Se]=q.useState(null),[K,fe]=q.useState(!1),[Ce,be]=q.useState(!1),[Te,Oe]=q.useState(!1),[Ge,dt]=q.useState(!1),[yn,Xt]=q.useState(!1),[Zt,or]=q.useState(0),[gn,ir]=q.useState(0),Ht=q.useRef(y.duration||ce||Xh),Co=q.useRef(null),wn=q.useRef(null),Cs=R===0,Es=R+1<=P,yt=y.type,xn=y.dismissible!==!1,Eo=y.className||"",ks=y.descriptionClassName||"",Sn=q.useMemo(()=>M.findIndex(ke=>ke.toastId===y.id)||0,[M,y.id]),Wr=q.useMemo(()=>{var ke;return(ke=y.closeButton)!=null?ke:G},[y.closeButton,G]),bs=q.useMemo(()=>y.duration||ce||Xh,[y.duration,ce]),ko=q.useRef(0),zn=q.useRef(0),Rs=q.useRef(0),Cn=q.useRef(null),[Ci,Ei]=xe.split("-"),bo=q.useMemo(()=>M.reduce((ke,Ie,Fe)=>Fe>=Sn?ke:ke+Ie.height,0),[M,Sn]),Ro=bC(),sr=y.invert||E,En=yt==="loading";zn.current=q.useMemo(()=>Sn*ae+bo,[Sn,bo]),q.useEffect(()=>{Ht.current=bs},[bs]),q.useEffect(()=>{fe(!0)},[]),q.useEffect(()=>{let ke=wn.current;if(ke){let Ie=ke.getBoundingClientRect().height;return ir(Ie),C(Fe=>[{toastId:y.id,height:Ie,position:y.position},...Fe]),()=>C(Fe=>Fe.filter(gt=>gt.toastId!==y.id))}},[C,y.id]),q.useLayoutEffect(()=>{if(!K)return;let ke=wn.current,Ie=ke.style.height;ke.style.height="auto";let Fe=ke.getBoundingClientRect().height;ke.style.height=Ie,ir(Fe),C(gt=>gt.find(Et=>Et.toastId===y.id)?gt.map(Et=>Et.toastId===y.id?{...Et,height:Fe}:Et):[{toastId:y.id,height:Fe,position:y.position},...gt])},[K,y.title,y.description,C,y.id]);let Jt=q.useCallback(()=>{be(!0),or(zn.current),C(ke=>ke.filter(Ie=>Ie.toastId!==y.id)),setTimeout(()=>{U(y)},jC)},[y,U,C,zn]);q.useEffect(()=>{if(y.promise&&yt==="loading"||y.duration===1/0||y.type==="loading")return;let ke;return z||S||F&&Ro?(()=>{if(Rs.current<ko.current){let Ie=new Date().getTime()-ko.current;Ht.current=Ht.current-Ie}Rs.current=new Date().getTime()})():Ht.current!==1/0&&(ko.current=new Date().getTime(),ke=setTimeout(()=>{var Ie;(Ie=y.onAutoClose)==null||Ie.call(y,y),Jt()},Ht.current)),()=>clearTimeout(ke)},[z,S,y,yt,F,Ro,Jt]),q.useEffect(()=>{y.delete&&Jt()},[Jt,y.delete]);function Ps(){var ke,Ie,Fe;return W!=null&&W.loading?q.createElement("div",{className:un(B==null?void 0:B.loader,(ke=y==null?void 0:y.classNames)==null?void 0:ke.loader,"sonner-loader"),"data-visible":yt==="loading"},W.loading):ie?q.createElement("div",{className:un(B==null?void 0:B.loader,(Ie=y==null?void 0:y.classNames)==null?void 0:Ie.loader,"sonner-loader"),"data-visible":yt==="loading"},ie):q.createElement(wC,{className:un(B==null?void 0:B.loader,(Fe=y==null?void 0:y.classNames)==null?void 0:Fe.loader),visible:yt==="loading"})}return q.createElement("li",{tabIndex:0,ref:wn,className:un(X,Eo,B==null?void 0:B.toast,(r=y==null?void 0:y.classNames)==null?void 0:r.toast,B==null?void 0:B.default,B==null?void 0:B[yt],(i=y==null?void 0:y.classNames)==null?void 0:i[yt]),"data-sonner-toast":"","data-rich-colors":(l=y.richColors)!=null?l:H,"data-styled":!(y.jsx||y.unstyled||O),"data-mounted":K,"data-promise":!!y.promise,"data-swiped":yn,"data-removed":Ce,"data-visible":Es,"data-y-position":Ci,"data-x-position":Ei,"data-index":R,"data-front":Cs,"data-swiping":Te,"data-dismissible":xn,"data-type":yt,"data-invert":sr,"data-swipe-out":Ge,"data-swipe-direction":me,"data-expanded":!!(z||j&&K),style:{"--index":R,"--toasts-before":R,"--z-index":L.length-R,"--offset":`${Ce?Zt:zn.current}px`,"--initial-height":j?"auto":`${gn}px`,...Z,...y.style},onDragEnd:()=>{Oe(!1),re(null),Cn.current=null},onPointerDown:ke=>{En||!xn||(Co.current=new Date,or(zn.current),ke.target.setPointerCapture(ke.pointerId),ke.target.tagName!=="BUTTON"&&(Oe(!0),Cn.current={x:ke.clientX,y:ke.clientY}))},onPointerUp:()=>{var ke,Ie,Fe,gt;if(Ge||!xn)return;Cn.current=null;let Et=Number(((ke=wn.current)==null?void 0:ke.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),kt=Number(((Ie=wn.current)==null?void 0:Ie.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),en=new Date().getTime()-((Fe=Co.current)==null?void 0:Fe.getTime()),lt=ne==="x"?Et:kt,kn=Math.abs(lt)/en;if(Math.abs(lt)>=zC||kn>.11){or(zn.current),(gt=y.onDismiss)==null||gt.call(y,y),Se(ne==="x"?Et>0?"right":"left":kt>0?"down":"up"),Jt(),dt(!0),Xt(!1);return}Oe(!1),re(null)},onPointerMove:ke=>{var Ie,Fe,gt,Et;if(!Cn.current||!xn||((Ie=window.getSelection())==null?void 0:Ie.toString().length)>0)return;let kt=ke.clientY-Cn.current.y,en=ke.clientX-Cn.current.x,lt=(Fe=n.swipeDirections)!=null?Fe:BC(xe);!ne&&(Math.abs(en)>1||Math.abs(kt)>1)&&re(Math.abs(en)>Math.abs(kt)?"x":"y");let kn={x:0,y:0};ne==="y"?(lt.includes("top")||lt.includes("bottom"))&&(lt.includes("top")&&kt<0||lt.includes("bottom")&&kt>0)&&(kn.y=kt):ne==="x"&&(lt.includes("left")||lt.includes("right"))&&(lt.includes("left")&&en<0||lt.includes("right")&&en>0)&&(kn.x=en),(Math.abs(kn.x)>0||Math.abs(kn.y)>0)&&Xt(!0),(gt=wn.current)==null||gt.style.setProperty("--swipe-amount-x",`${kn.x}px`),(Et=wn.current)==null||Et.style.setProperty("--swipe-amount-y",`${kn.y}px`)}},Wr&&!y.jsx?q.createElement("button",{"aria-label":N,"data-disabled":En,"data-close-button":!0,onClick:En||!xn?()=>{}:()=>{var ke;Jt(),(ke=y.onDismiss)==null||ke.call(y,y)},className:un(B==null?void 0:B.closeButton,(u=y==null?void 0:y.classNames)==null?void 0:u.closeButton)},(c=W==null?void 0:W.close)!=null?c:kC):null,y.jsx||g.isValidElement(y.title)?y.jsx?y.jsx:typeof y.title=="function"?y.title():y.title:q.createElement(q.Fragment,null,yt||y.icon||y.promise?q.createElement("div",{"data-icon":"",className:un(B==null?void 0:B.icon,(f=y==null?void 0:y.classNames)==null?void 0:f.icon)},y.promise||y.type==="loading"&&!y.icon?y.icon||Ps():null,y.type!=="loading"?y.icon||(W==null?void 0:W[yt])||yC(yt):null):null,q.createElement("div",{"data-content":"",className:un(B==null?void 0:B.content,(p=y==null?void 0:y.classNames)==null?void 0:p.content)},q.createElement("div",{"data-title":"",className:un(B==null?void 0:B.title,(h=y==null?void 0:y.classNames)==null?void 0:h.title)},typeof y.title=="function"?y.title():y.title),y.description?q.createElement("div",{"data-description":"",className:un(ye,ks,B==null?void 0:B.description,(v=y==null?void 0:y.classNames)==null?void 0:v.description)},typeof y.description=="function"?y.description():y.description):null),g.isValidElement(y.cancel)?y.cancel:y.cancel&&Vl(y.cancel)?q.createElement("button",{"data-button":!0,"data-cancel":!0,style:y.cancelButtonStyle||te,onClick:ke=>{var Ie,Fe;Vl(y.cancel)&&xn&&((Fe=(Ie=y.cancel).onClick)==null||Fe.call(Ie,ke),Jt())},className:un(B==null?void 0:B.cancelButton,(w=y==null?void 0:y.classNames)==null?void 0:w.cancelButton)},y.cancel.label):null,g.isValidElement(y.action)?y.action:y.action&&Vl(y.action)?q.createElement("button",{"data-button":!0,"data-action":!0,style:y.actionButtonStyle||pe,onClick:ke=>{var Ie,Fe;Vl(y.action)&&((Fe=(Ie=y.action).onClick)==null||Fe.call(Ie,ke),!ke.defaultPrevented&&Jt())},className:un(B==null?void 0:B.actionButton,(x=y==null?void 0:y.classNames)==null?void 0:x.actionButton)},y.action.label):null))};function Zh(){if(typeof window>"u"||typeof document>"u")return"ltr";let n=document.documentElement.getAttribute("dir");return n==="auto"||!n?window.getComputedStyle(document.documentElement).direction:n}function HC(n,r){let i={};return[n,r].forEach((l,u)=>{let c=u===1,f=c?"--mobile-offset":"--offset",p=c?AC:IC;function h(v){["top","right","bottom","left"].forEach(w=>{i[`${f}-${w}`]=typeof v=="number"?`${v}px`:v})}typeof l=="number"||typeof l=="string"?h(l):typeof l=="object"?["top","right","bottom","left"].forEach(v=>{l[v]===void 0?i[`${f}-${v}`]=p:i[`${f}-${v}`]=typeof l[v]=="number"?`${l[v]}px`:l[v]}):h(p)}),i}var Sk=g.forwardRef(function(n,r){let{invert:i,position:l="bottom-right",hotkey:u=["altKey","KeyT"],expand:c,closeButton:f,className:p,offset:h,mobileOffset:v,theme:w="light",richColors:x,duration:E,style:y,visibleToasts:O=LC,toastOptions:S,dir:C=Zh(),gap:P=FC,loadingIcon:M,icons:R,containerAriaLabel:L="Notifications",pauseWhenPageIsHidden:z}=n,[U,H]=q.useState([]),G=q.useMemo(()=>Array.from(new Set([l].concat(U.filter(F=>F.position).map(F=>F.position)))),[U,l]),[Z,te]=q.useState([]),[pe,X]=q.useState(!1),[ye,ce]=q.useState(!1),[xe,ae]=q.useState(w!=="system"?w:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),ie=q.useRef(null),j=u.join("+").replace(/Key/g,"").replace(/Digit/g,""),B=q.useRef(null),W=q.useRef(!1),N=q.useCallback(F=>{H(ne=>{var re;return(re=ne.find(me=>me.id===F.id))!=null&&re.delete||Lt.dismiss(F.id),ne.filter(({id:me})=>me!==F.id)})},[]);return q.useEffect(()=>Lt.subscribe(F=>{if(F.dismiss){H(ne=>ne.map(re=>re.id===F.id?{...re,delete:!0}:re));return}setTimeout(()=>{_m.flushSync(()=>{H(ne=>{let re=ne.findIndex(me=>me.id===F.id);return re!==-1?[...ne.slice(0,re),{...ne[re],...F},...ne.slice(re+1)]:[F,...ne]})})})}),[]),q.useEffect(()=>{if(w!=="system"){ae(w);return}if(w==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ae("dark"):ae("light")),typeof window>"u")return;let F=window.matchMedia("(prefers-color-scheme: dark)");try{F.addEventListener("change",({matches:ne})=>{ae(ne?"dark":"light")})}catch{F.addListener(({matches:re})=>{try{ae(re?"dark":"light")}catch(me){console.error(me)}})}},[w]),q.useEffect(()=>{U.length<=1&&X(!1)},[U]),q.useEffect(()=>{let F=ne=>{var re,me;u.every(Se=>ne[Se]||ne.code===Se)&&(X(!0),(re=ie.current)==null||re.focus()),ne.code==="Escape"&&(document.activeElement===ie.current||(me=ie.current)!=null&&me.contains(document.activeElement))&&X(!1)};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[u]),q.useEffect(()=>{if(ie.current)return()=>{B.current&&(B.current.focus({preventScroll:!0}),B.current=null,W.current=!1)}},[ie.current]),q.createElement("section",{ref:r,"aria-label":`${L} ${j}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},G.map((F,ne)=>{var re;let[me,Se]=F.split("-");return U.length?q.createElement("ol",{key:F,dir:C==="auto"?Zh():C,tabIndex:-1,ref:ie,className:p,"data-sonner-toaster":!0,"data-theme":xe,"data-y-position":me,"data-lifted":pe&&U.length>1&&!c,"data-x-position":Se,style:{"--front-toast-height":`${((re=Z[0])==null?void 0:re.height)||0}px`,"--width":`${DC}px`,"--gap":`${P}px`,...y,...HC(h,v)},onBlur:K=>{W.current&&!K.currentTarget.contains(K.relatedTarget)&&(W.current=!1,B.current&&(B.current.focus({preventScroll:!0}),B.current=null))},onFocus:K=>{K.target instanceof HTMLElement&&K.target.dataset.dismissible==="false"||W.current||(W.current=!0,B.current=K.relatedTarget)},onMouseEnter:()=>X(!0),onMouseMove:()=>X(!0),onMouseLeave:()=>{ye||X(!1)},onDragEnd:()=>X(!1),onPointerDown:K=>{K.target instanceof HTMLElement&&K.target.dataset.dismissible==="false"||ce(!0)},onPointerUp:()=>ce(!1)},U.filter(K=>!K.position&&ne===0||K.position===F).map((K,fe)=>{var Ce,be;return q.createElement(UC,{key:K.id,icons:R,index:fe,toast:K,defaultRichColors:x,duration:(Ce=S==null?void 0:S.duration)!=null?Ce:E,className:S==null?void 0:S.className,descriptionClassName:S==null?void 0:S.descriptionClassName,invert:i,visibleToasts:O,closeButton:(be=S==null?void 0:S.closeButton)!=null?be:f,interacting:ye,position:F,style:S==null?void 0:S.style,unstyled:S==null?void 0:S.unstyled,classNames:S==null?void 0:S.classNames,cancelButtonStyle:S==null?void 0:S.cancelButtonStyle,actionButtonStyle:S==null?void 0:S.actionButtonStyle,removeToast:N,toasts:U.filter(Te=>Te.position==K.position),heights:Z.filter(Te=>Te.position==K.position),setHeights:te,expandByDefault:c,gap:P,loadingIcon:M,expanded:pe,pauseWhenPageIsHidden:z,swipeDirections:n.swipeDirections})})):null}))});export{Sk as $,nE as A,aE as B,cE as C,VC as D,GC as E,wE as F,xE as G,kE as H,ak as I,GE as J,RE as K,fk as L,NE as M,I1 as N,TE as O,uk as P,qC as Q,ik as R,vk as S,sk as T,cm as U,dk as V,JE as W,lE as X,ek as Y,qE as Z,$E as _,dE as a,SE as a0,gE as a1,VE as a2,fE as a3,UE as a4,jE as a5,_E as a6,ZE as a7,WE as a8,vE as a9,gv as aA,Pv as aB,id as aC,tv as aD,JS as aE,ok as aF,rk as aG,e2 as aH,Em as aI,WC as aJ,IE as aK,It as aL,c2 as aM,zv as aN,Sx as aO,rv as aP,ea as aQ,nk as aR,OE as aS,DE as aT,rE as aU,CE as aV,yE as aa,EE as ab,tk as ac,ME as ad,xk as ae,XE as af,QE as ag,iE as ah,KE as ai,mE as aj,oE as ak,HE as al,bE as am,pE as an,FE as ao,BE as ap,ZC as aq,$m as ar,JC as as,sd as at,$h as au,XS as av,ct as aw,ZS as ax,Xe as ay,Je as az,yk as b,eE as c,ck as d,pk as e,mk as f,uE as g,hk as h,gk as i,ee as j,lk as k,hE as l,YE as m,LE as n,zE as o,AE as p,PE as q,g as r,sE as s,tE as t,wk as u,Hr as v,XC as w,KC as x,u1 as y,QC as z};
|
package/dist/index.html
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
8
|
<title>NextClaw - 系统配置</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/vendor-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-D_vv0E-O.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/vendor-H2M3a_4Z.js">
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BsDasSXm.css">
|
|
12
12
|
</head>
|
|
13
13
|
|
|
14
14
|
<body>
|
package/package.json
CHANGED
package/src/App.tsx
CHANGED
|
@@ -21,6 +21,7 @@ const ChannelsListPage = lazy(async () => ({ default: (await import('@/component
|
|
|
21
21
|
const RuntimeConfigPage = lazy(async () => ({ default: (await import('@/components/config/RuntimeConfig')).RuntimeConfig }));
|
|
22
22
|
const SessionsConfigPage = lazy(async () => ({ default: (await import('@/components/config/SessionsConfig')).SessionsConfig }));
|
|
23
23
|
const CronConfigPage = lazy(async () => ({ default: (await import('@/components/config/CronConfig')).CronConfig }));
|
|
24
|
+
const SecretsConfigPage = lazy(async () => ({ default: (await import('@/components/config/SecretsConfig')).SecretsConfig }));
|
|
24
25
|
const MarketplacePage = lazy(async () => ({ default: (await import('@/components/marketplace/MarketplacePage')).MarketplacePage }));
|
|
25
26
|
|
|
26
27
|
function RouteFallback() {
|
|
@@ -47,6 +48,7 @@ function AppContent() {
|
|
|
47
48
|
<Route path="/runtime" element={<LazyRoute><RuntimeConfigPage /></LazyRoute>} />
|
|
48
49
|
<Route path="/sessions" element={<LazyRoute><SessionsConfigPage /></LazyRoute>} />
|
|
49
50
|
<Route path="/cron" element={<LazyRoute><CronConfigPage /></LazyRoute>} />
|
|
51
|
+
<Route path="/secrets" element={<LazyRoute><SecretsConfigPage /></LazyRoute>} />
|
|
50
52
|
<Route path="/marketplace" element={<Navigate to="/marketplace/plugins" replace />} />
|
|
51
53
|
<Route path="/marketplace/:type" element={<LazyRoute><MarketplacePage /></LazyRoute>} />
|
|
52
54
|
<Route path="/" element={<Navigate to="/chat" replace />} />
|
package/src/api/config.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type {
|
|
|
7
7
|
ChannelConfigUpdate,
|
|
8
8
|
ProviderConfigUpdate,
|
|
9
9
|
RuntimeConfigUpdate,
|
|
10
|
+
SecretsConfigUpdate,
|
|
11
|
+
SecretsView,
|
|
10
12
|
ConfigActionExecuteRequest,
|
|
11
13
|
ConfigActionExecuteResult,
|
|
12
14
|
SessionsListView,
|
|
@@ -103,6 +105,20 @@ export async function updateRuntime(
|
|
|
103
105
|
return response.data;
|
|
104
106
|
}
|
|
105
107
|
|
|
108
|
+
// PUT /api/config/secrets
|
|
109
|
+
export async function updateSecrets(
|
|
110
|
+
data: SecretsConfigUpdate
|
|
111
|
+
): Promise<SecretsView> {
|
|
112
|
+
const response = await api.put<SecretsView>(
|
|
113
|
+
'/api/config/secrets',
|
|
114
|
+
data
|
|
115
|
+
);
|
|
116
|
+
if (!response.ok) {
|
|
117
|
+
throw new Error(response.error.message);
|
|
118
|
+
}
|
|
119
|
+
return response.data;
|
|
120
|
+
}
|
|
121
|
+
|
|
106
122
|
// POST /api/config/actions/:id/execute
|
|
107
123
|
export async function executeConfigAction(
|
|
108
124
|
actionId: string,
|